mysql - 选择列中包含确切数字的行,其中一组数字用逗号分隔

标签 mysql sql-like

也许答案很简单,但我找不到适合我的 MySQL 查询。

我有表用户:

| id_user |  name   | action_type |
+---------------------------------+
|    1    | joshua  |  1,13,12,40 |
|    2    | joshua  |  2,8        |

而且我只想选择在 action_type 列中具有确切数字的行。

action_type 以文本形式存储在 MySQL 中。

我已经试过了:

SELECT * FROM user WHERE action_type LIKE '%2%'

但它选择了 12 行,这不是我想要的 :(

也许可以使用 IN 运算符,但我找不到正确的使用方法。

最佳答案

您正在寻找 FIND_IN_SET

SELECT *
FROM user
WHERE FIND_IN_SET( '2', action_type )

SQL Fiddle DEMO

更新

顺便提一下,这个也是可以的

SELECT *
FROM user
WHERE FIND_IN_SET( 2, action_type )

MySQL 会自动转换为 char

关于mysql - 选择列中包含确切数字的行,其中一组数字用逗号分隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13928538/

相关文章:

MySQL Like 函数仅适用于某些表

sql - 有没有办法像自定义分隔符一样选择

mysql - Rails 3 和 MySQL 的问题与 ActiveSupport 中的 JSON 依赖相关

java - 为 java 项目创建安装

mysql存储函数使用

mysql - 如何加入表ON .. LIKE ... 'table.variable'

php - CSV 到 mysql 加载

php - 将多数组从模型传递到 Controller

java - 与sql like 和bind 精确匹配

sql - 优化多列 LIKE SQL 查询的一些最佳实践是什么?