1

これは単純化されたものですが、この特定の状況で機能するものは見つかりませんでした。

データベース内の項目が文字列の 1 文字である Mysql クエリを介して結果を見つけようとしています。たとえば、文字列 'MYSQL' があり、DB 内のすべてを M の識別子または Q の識別子で取得する必要があります。

したがって、dbは次のようになります

name     identifier
item1      M
item2      Q
item3      B

「MYSQL」を検索してitem1とitem2を返したいと思います。

LIKE が機能しないので、WHERE IN を試しましたが、「M」、「Y」、「S」などのようにテキストをフォーマットしない限り機能しません。

これは問題外ではありませんが、もっと雄弁な方法があると感じています。前もって感謝します。

4

4 に答える 4

0

REGEXP を使用します。

1 文字の識別子を使用して正規表現を作成すると、それを必要な単語に一致させることができます。例えば:

select * from TABLENAME
where 'MySQL' REGEXP concat('.*', identifier, '.*');

これにより、「M」と「Q」の行が取得されますが、「B」の行は取得されません。

于 2013-07-10T16:00:48.100 に答える
0

LIKE文字列連結と演算子を使用できないのはなぜですか?

SELECT name FROM table_identifiers
    WHERE UCASE('MYSQL') LIKE UCASE(CONCAT('%', identifier, '%'))
于 2013-07-10T16:04:37.033 に答える
0

この文字列関数を使用できます

SELECT * FROM table_name WHERE LOCATE(identifier, "mysql")>0
于 2013-07-10T16:08:16.547 に答える