在php中使用数组和内爆函数的自定义查询

Posted

技术标签:

【中文标题】在php中使用数组和内爆函数的自定义查询【英文标题】:Custom queries using arrays and implode function in php 【发布时间】:2019-06-06 02:46:34 【问题描述】:

我正在编写一个游戏网站。在这个网站上,每个问题都应该只向用户显示一次。问题 ID 存储在一个字段中:

表中的字段名称:hidden_​​questions

hidden_​​questions 值:1,2,3,17

我正在尝试从数据库中获取 ID 并使用 implode 函数将它们存储在一个数组中:

$q1= array($data['question_id']);
$q2= implode(',', $q1); // returns 1,2,3,4,5

我想使用以下查询显示一个非重复问题:

$sql = "SELECT * FROM question WHERE question_id!=('".$q2."') LIMIT 1";

此代码不起作用,并且会显示带有存储在 hidden_​​questions 字段中的 ID 的问题。请指导我。

【问题讨论】:

你可能想说SELECT... WHERE... NOT IN() !=('".$q2."') 应该是 NOT IN ($q2) 【参考方案1】:

我看到有人已经写了关于解决方案的评论,但我还是写下来给你。

你是在正确的方式,我明白你想做什么。但是,mysql 在这种语法中没有 != 这样的东西。

也许你可以尝试使用NOT IN

$sql = "SELECT * FROM question WHERE question_id NOT IN (".$b.") LIMIT 1";

另外,你为什么使用LIMIT 1?根据您的解释,您似乎想要显示多个问题。

免责声明:我没有测试代码,也许你需要用引号来玩一些。但这应该是解决方案

【讨论】:

以上是关于在php中使用数组和内爆函数的自定义查询的主要内容,如果未能解决你的问题,请参考以下文章

用键内爆关联数组的最快方法

PHP常用的自定义函数

将 MySQL 内爆数组中的项目与查询中的 PHP 数组匹配

查询日期数组以仅显示未来事件 - PHP

PHP 使用循环外的自定义字段自定义Wordpress查询

如何在 PHP/Eclipse 中对 foreach 循环中从数组中拉出的自定义对象进行智能感知?