【发布时间】:2015-06-28 21:20:45
【问题描述】:
使用以下查询
SELECT * FROM words WHERE word REGEXP '(ord)'
- 这将返回像
ford、lord、word这样的词
如何包含这些字母出现但顺序不同的单词?
- 例如
adore、door、random
编辑:
搞定了。
SELECT word, (
IF(LOCATE('o', word) > 0, 1, 0) +
IF(LOCATE('r', word) > 0, 1, 0) +
IF(LOCATE('z', word) > 0, 1, 0) +
IF(LOCATE('a', word) > 0, 1, 0) +
IF(LOCATE('d', word) > 0, 1, 0)) AS chars_present
from words
HAVING chars_present = 5
现在我将如何查询包含字母 r 的单词两次?
【问题讨论】:
-
[ord]{3}..... 但这会找到rod,但不会找到orsd,因为s不是类的一部分,{3}需要三个字符是连续的。 -
你想用这个解决什么问题?似乎是一个非常奇怪的要求,可能有更好的方法可用。
-
我对任何方法都很好...我的目标是从一个包含一些字母的表中以任意顺序检索单词。所有字母都必须出现。