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