1

次のような内容の MySQL テーブルがあります。

id mask
1  abcd
2  vdskfw
...
212421 dijhaihwfaw

abcd efghijklなどの着信文字列があり、それがテーブルからの一致で始まるかどうかを確認する必要があります。複数のクエリでそれを行うことができます:

SELECT * FROM table WHERE mask = 'abcdefghijkl';

一致しない場合:

SELECT * FROM table WHERE mask = 'abcdefghijk';
SELECT * FROM table WHERE mask = 'abcdefghij';
SELECT * FROM table WHERE mask = 'abcdefghi';

...等々。

しかし、この問題を解決するためのより良い方法があるのではないでしょうか?

4

1 に答える 1

1

これらのいずれも、あなたが要求したことを行います。

SELECT * FROM table
WHERE locate(mask, 'abcdefghijkl') = 1;

また

SELECT * FROM table
WHERE 'abcdefghijkl' rlike concat('^', mask)

また

SELECT * FROM table
WHERE 'abcdefghijkl' like concat(mask, '%')

デモ

于 2012-12-14T17:06:03.720 に答える