MySQL where NOT IN 名称数组?
Posted
技术标签:
【中文标题】MySQL where NOT IN 名称数组?【英文标题】:MySQL where NOT IN name array? 【发布时间】:2012-08-27 03:45:32 【问题描述】:我想排除这些具有以下名称的专辑:
$ban_album_names = array('Wall', 'Profile', 'Cover', 'Instagram');
如何正确书写,
SELECT * FROM albums WHERE name NOT IN ???
如何让它在数组中查找,如果名称匹配它应该!= 行
【问题讨论】:
【参考方案1】:试试这个:
$sql = "SELECT *
FROM albums
WHERE name NOT IN ( '" . implode( "', '" , $ban_album_names ) . "' )";
【讨论】:
对于给定的名称列表,字符串中没有任何嵌入的引号;如果有,您需要创建$banned
列表调用适当的引用函数来防止SQL Injection。
这是一个糟糕的答案,会导致一堆不必要的查询。往下看。
如果你有一个 ID 的数组,整数呢?
此参数顺序在撰写本文时可能是合适的。但是,现在遇到它的人请注意,记录的顺序首先是“胶水”,然后是数组。从技术上讲,它们仍然可以工作,但这不是记录的顺序。【参考方案2】:
mysql 代码是
SELECT * FROM albums WHERE name NOT IN ('Wall', 'Profile', 'Cover', 'Instagram')
【讨论】:
以上是关于MySQL where NOT IN 名称数组?的主要内容,如果未能解决你的问题,请参考以下文章