有一个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';
......等等。
但也许有更好的方法来解决这个问题?
答案 0 :(得分: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, '%')