0

mysql のロケートに問題があります。

私のテーブルtestは次のようになります。

行 => タイプ

id => int
データ => 文字列

SELECT LOCATE("searchString", (SELECT data FROMテストを実行しようとするとLIMIT 2))

「サブクエリが複数の行を返します」というメッセージが常に表示されます。

この問題を解決するにはどうすればよいですか? 検索文字列がデータ行の一部であるすべての行を選択したいだけです。mysqlでこれを行うことは可能ですか?

アップデート:

これは単なるサブクエリです。穴のクエリは次のようになります。

SELECT * FROM anamnese WHERE STRCMP("01.01.2012", (SELECT SUBSTRING(
                                              FROM ( SELECT LOCATE ... )
                                              FOR (SELECT LOACTE ....)+10)
                                 = 0

そのため、データベースに保存されている文字列内で日付を検索する必要があります。そして、データベースの何も変更できません!

4

2 に答える 2

1

クエリを使用しLIKEます。dataこれにより、列に「searchString」という単語が含まれるすべての行が返されます。

SELECT `data` FROM `test` WHERE `data` LIKE '%searchString%';
于 2013-04-29T15:25:09.693 に答える
0

LOCATE(substr, string)

それを機能させたい場合は、クエリに「LIMIT 2」の代わりに「LIMIT 1」を入れる必要があります。

とにかく、それはあなたが探しているものではないと思います。

出典: MySQL ドキュメント

于 2013-04-29T15:25:59.533 に答える