问一个SQL的写法

表A字段type2中保存的记录形式:1,3,5,7,8
图片描述

我想查找type2字段中,含有2的记录,SQL怎么写?

阅读 2.7k
5 个回答

直接type2 like "%2%"不行,你可以试试:

SELECT "22,33" LIKE "%2%";

其结果不为0。

需要用FIND_IN_SET:

where FIND_IN_SET('2', type2) > 0;

like是广泛的模糊匹配,字符串中没有分隔符,find_in_set是精确匹配,字段值以英文”,”分隔

SELECT * FROM A where find_in_set(type2,2);

解决几种方法

  1. Like
  2. Find_in_set
  3. regexp

4.引es, solr等全文检索

如果数据大,前三都不建议

select * from table_name t where t.type2 like '%2%'

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题