我意识到如果我可以在创建表时修改表格会更容易,但假设我不能,我有一个如下的表:
abcd
abde
abdf
abff
bbsdf
bcggs
... snip large amount
zza
表中的值不是固定长度。 我有一个匹配的字符串,如abffagpokejfkjs。 如果是相反的话,我可以做到
SELECT * from table where value like 'abff%'
但我需要选择与提供的字符串的开头匹配的值。
有没有快速的方法,或者是否需要通过表格进行迭代才能找到匹配?
答案 0 :(得分:38)
试试这个:
SELECT col1, col2 -- etc...
FROM your_table
WHERE 'abffagpokejfkjs' LIKE CONCAT(value, '%')
请注意,这不会有效地使用索引,因此如果您有大量记录,它将会很慢。
另请注意,value
中的某些字符(例如%
)可能被LIKE解释为具有特殊含义,这可能是不受欢迎的。
答案 1 :(得分:0)
LIKE
:
... WHERE LEFT('abffagpokejfkjs', LENGTH(value)) = value