如何根据多个规范从mysql数据库中选择行

时间:2014-03-03 15:50:59

标签: php mysql sql arrays

我有一个数组,$ 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 "  

任何方便的方式来完成这项工作,因为数组总是改变它的值

1 个答案:

答案 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"