首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >mysql将字符串与表中字符串的开头匹配

mysql将字符串与表中字符串的开头匹配
EN

Stack Overflow用户
提问于 2012-03-12 20:44:54
回答 2查看 44.5K关注 0票数 21

我意识到,如果我可以在创建表的时候修改它,那会容易得多,但假设我不能,我有一个表,如下所示:

代码语言:javascript
复制
abcd
abde
abdf
abff
bbsdf
bcggs
... snip large amount
zza

表中的值不是固定长度的。我有一个字符串可以匹配,比如abffagpokejfkjs。如果是另一种情况,我可以做

代码语言:javascript
复制
SELECT * from table where value like 'abff%'

但我需要选择与提供的字符串开头匹配的值。

有没有一种快速的方法可以做到这一点,或者需要遍历表格才能找到匹配项?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-12 20:49:11

试试这个:

代码语言:javascript
复制
SELECT col1, col2 -- etc...
FROM your_table
WHERE 'abffagpokejfkjs' LIKE CONCAT(value, '%')

请注意,这不会有效地使用索引,因此如果您有很多记录,则速度会很慢。

还要注意,value中的一些字符(例如%)可能会被同类解释为具有特殊含义,这可能是不希望的。

票数 43
EN

Stack Overflow用户

发布于 2020-05-08 07:53:27

可以通过将比较字符串截断为每个值的长度来避免LIKE

代码语言:javascript
复制
... WHERE LEFT('abffagpokejfkjs', LENGTH(value)) = value
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9667243

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档