MySQL通过掩码选择

时间:2012-12-14 11:05:37

标签: mysql select match

有一个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';

......等等。

但也许有更好的方法来解决这个问题?

1 个答案:

答案 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, '%')

DEMO