我有一个数组,$ username包含一堆用户名,比如(让列出4个值很简单)
$username[0]='nicholas', $username[1]='Jane', $username[2]='Frank',$username[3]='Ben'
我在数据库中有一个表,如
id username post timestamp
1 nicholas hello 13932...
2 Jane world 13922...
3 kesong yes 13978...
4 Frank bad 13374...
5 Sim tii 13842...
6 Ben tisue 13149...
我想选择仅匹配数组上的值,$ username和按时间戳排序的行
而不是:
//list all the value
$query="SELECT FORM `table1` WHERE `username`='nicholas' || `username`='Jane' ORDER BY timestamp "
任何方便的方式来完成这项工作,因为数组总是改变它的值
答案 0 :(得分:2)
可能最好的方法是使用IN
子句构造查询。
https://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#function_in
如果$username
中包含所有可搜索的名称,您可以创建动态查询,如下所示:
"SELECT FORM table1 WHERE username IN ('".implode("','", $username)."') ORDER BY timestamp"