mysql - FIND_IN_SET 在列上?是否有意义?

标签 mysql where-clause find-in-set

我偶然发现了一种奇怪的表达方式,这对我来说完全没有意义。

SELECT * FROM `table` WHERE FIND_IN_SET('string', `column`);

为什么不:

SELECT * FROM `table` WHERE `column`='string';

我认为 FIND_IN_SET 用于在逗号分隔的字符串列表中查找字符串。在某些情况下,我可以从“FIND_IN_SET”列表达式而不是简单的 WHERE 中受益吗?

最佳答案

FIND_IN_SET 通常以其他方式使用:从逗号分隔的参数列表中查找列值,因为将值作为逗号分隔列表存储在数据库中通常不是一个好主意:

select * 
FROM `table` 
WHERE FIND_IN_SET(`column`, '1,2,3,4,5');

关于mysql - FIND_IN_SET 在列上?是否有意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50759061/

相关文章:

mysql - 在mysql中使用select into局部变量和准备好的语句

MySQL - 如果字段记录不相同则更新行

尝试从字典插入数据时,Python 的值太多而无法解压

使用 FIND_IN_SET 和 GROUP_CONCAT 时出现 MySQL 查询加入问题

MySQL Select 查询以根据列表值获取记录

mysql - 使用 IN 运算符的子查询

mysql - 在 Mac OS X 中创建的 MySQL 数据库文件夹存储在哪里?

mysql - MySQL 响应中结果数量不同

mysql - 选择一个选择的结果

php - SQL Select where IN (array) 仅当找到数组中的第一项时才返回