伙计我需要一个查询,列出所有那些至少有两个相同字母的记录。不幸的是
"REGEXP '[a]|[b]|[c]|[d]|[e]|[f]|[g]|[h]|[i]|[j]|[k]|[l]|[m]|[n]|[o]|[p]|[q]|[r]|[s]|[t]|[u]|[v]|[w]|[x]|[y]|[z]';"
这个对我来说不起作用,对[a]{2}
属性也不同。
有什么建议吗? 谢谢你的帮助
答案 0 :(得分:2)
您可以使用此查询:
SELECT some_fields FROM some_table WHERE field REGEXP
'a{2}|b{2}|c{2}|d{2}|e{2}|f{2}|g{2}|h{2}|i{2}|j{2}|k{2}|l{2}|m{2}|n{2}|o{2}|p{2}|q{2}|r{2}|s{2}|t{2}|u{2}|v{2}|w{2}|x{2}|y{2}|z{2}';
它将返回some_table
中field
并排包含两个相同字符的所有记录。
它可以返回的示例(基于我的一个本地MySQL表):
霍比特人
阿巴
艾萨克
拼字游戏
如果角色不必在一起,您可以使用其他查询:
SELECT some_fields FROM some_table WHERE field REGEXP
'a.*a|b.*b|c.*c|d.*d|e.*e|f.*f|g.*g|h.*h|i.*i|j.*j|k.*k|l.*l|m.*m|n.*n|o.*o|p.*p|q.*q|r.*r|s.*s|t.*t|u.*u|v.*v|w.*w|x.*x|y.*y|z.*z';
它可以返回的示例(基于我的一个本地MySQL表):
可能(双B)
好奇(双U)
相反(双R)
阿巴(双A和双B)
答案 1 :(得分:0)
Mysql没有反向引用,所以你可能不得不使用它:
REGEXP 'a{2}|b{2}|c{2}|d{2}|e{2}|f{2}|g{2}|h{2}|i{2}|j{2}|k{2}|l{2}|m{2}|n{2}|o{2}|p{2}|q{2}|r{2}|s{2}|t{2}|u{2}|v{2}|w{2}|x{2}|y{2}|z{2}'