Sql查询优先考虑php数组中的值
Posted
技术标签:
【中文标题】Sql查询优先考虑php数组中的值【英文标题】:Sql query prioritising values in php array 【发布时间】:2016-05-31 20:00:27 【问题描述】:mysql 数据库的 column_x 包含可能存在于 php 数组中的值。
我想查询数据库并优先考虑 PHP 数组中存在 column_x 值的所有行。
我最初的想法是选择一个 column_y,如果 column_x 存在于 php 数组中,则为 1,否则为 0,然后按 column_y DESC 排序。这可能吗?如果是这样,我该怎么做?或者,有没有更好的方法来解决这个问题?
谢谢!
【问题讨论】:
【参考方案1】:您可以使用ORDER BY column_x IN (list of values) DESC
。当条件为真时,值为1
,否则为0
。
$array = array(1, 3, 4, 6);
$str = implode(', ', $array);
$sql = "SELECT * FROM yourTable
ORDER BY column_x IN ($str) DESC";
如果值来自用户输入,请确保在插入 SQL 之前对其进行清理。
【讨论】:
非常感谢!这正是我需要的:) 如果要控制两组内的排序,您需要在ORDER BY
中添加额外的参数。否则数据库会任意排序。
我的代码中没有任何内容将空白行强制到末尾。
好的,我已经修好了。谢谢巴尔玛!以上是关于Sql查询优先考虑php数组中的值的主要内容,如果未能解决你的问题,请参考以下文章