PHP使用SQL语句获取数组中的数据

标签 php mysql sql

我在 MySQL 数据库中保存了一些以逗号分隔的记录。

我有下表和记录:

tbl_checks

id  | items
----+------
1   | 2,5
2   | 2,3

所以我想获取列 items 中逗号分隔值之一为 5 的数据。

我试过:

$sql = "SELECT * FROM tbl_checks WHERE items="; //unable todo at here

这样我就可以:

$results = $this->db->query($sql)->result() //codeigniter script

我也试过

$sql = "SELECT * FROM tbl_checks WHERE items=".in_array(5)//this fails

最佳答案

如果您想查询此字段,您当前的方法不是很好。通常,您会使用规范化并将该数据拆分到多个表中,以便更好地查询。

如果您坚持使用这种方法,您可以使用 LIKECONCAT

$id = '2';
$sql = "SELECT * FROM tbl_checks WHERE CONCAT(',', items, ',') LIKE '%,$id,%'";

关于PHP使用SQL语句获取数组中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47788798/

相关文章:

php - 如何在 Wordpress 中实现片段缓存 (W3TC)

mysql - SQL 连接两个表,但如果第一个表存在于第二个表中,则覆盖第一个表

mysql - 将大型 XML 文件解析到数据库中。使用多线程?

php - Laravel 5 加密 - 给定相同字符串的不同值?

mysql - NULLIF 与 IFNULL

mysql - 如何修复mysql上的相关子查询

sql - 如何使用标准 SQL 连接以逗号分隔的行?

php - Curl 或 Mysql 服务器使用

javascript - Recaptcha 请求在引导模式弹出窗口中超时

phpunit不可能按照安装过程进行