php - mysql | mysql |来自空列和 FIND_IN_SET 的请求

标签 php mysql request find-in-set

我有一张 table :

id  name   position   status
1   A      1,2        1
2   B      1          1
3   C                 1
4   D      2          1

其中:position列是一个文本字段; 我的要求在这里:

SELECT `id` 
FROM  `table` 
WHERE `status`=1
AND `position` >  ''
AND `position` = FIND_IN_SET( 1,  `position` ) 
OR  `position` = FIND_IN_SET( 2,  `position` ) 

此请求将返回:1,2,3,4。这是错误的,因为我需要:1,2,4 -> 条件:(位置 > '')。 问题出在哪里以及如何更改我的请求? 谢谢。

最佳答案

在检查字段列表中的数字时,不需要检查位置是否为空。

您不需要检查 position = FIND_IN_SET.... 。它将返回 1 所在位置的值。

你需要这样做:

 SELECT `id` 
 FROM  `table` 
 WHERE `status`=1
 AND  FIND_IN_SET( 1,  `position` ) 
 OR   FIND_IN_SET( 2,  `position` ) 

DEMO HERE

关于php - mysql | mysql |来自空列和 FIND_IN_SET 的请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22480418/

相关文章:

php - 在 foreach 循环后更改每个字符串的背景颜色

php - 如何将多个复选框值存储到一个数据库字段中

php - PDO 联合选择结果没有任何结果

mysql - 如何重复行?

ios - 进入后台时 Alamofire 请求卡住了?

javascript - 为什么我的 AJAX 请求在 Codepen.io 中不起作用?

php - 如何在opencart的导航菜单中添加信息链接?

mysql - 如何使用 Node.js 创建与 mysql 的等待连接

php - 如何更改 WAMP 中 phpMyAdmin 中显示的语言?

node.js - 服务器之间通信的安全方式