MYSQL查询按照数组寻找,求如何实现
+----------+------------+
| id | subject |
+----------+------------+
| 1 | 语文 |
| 2 | 数学 |
| 3 | 英语 |
| 4 | 政治 |
| 5 | 物理 |
如果我要选出在表的subject列一个数组中$kk=array("英语","政治","语文");
的所以直,并按照数组顺序返回应该怎么写SQL语言啊
就是我现在要返回
表中
"英语","政治","语文"
顺序的ID
返回 3 4 1我怕我说得不清楚,我在说一次吧,我语文不怎么好(以下程序的表结构是此贴上面那个表)
$kk=array("英语","政治","语文");
$sql="SELECT * FROM TABLE WHERE subject='$kk[0]' or subject='$kk[1]' or subject='$kk[2]' ";
$a=mysql_query($sql);
$array=array();
while($kk=mysql_fetch_array($a))
{
$array[]=$kk[1];
}结果返回的是 $array[0]=语文,$array[1]=英语,$array[3]=政治
按照表的顺序查找的,
但我想按照数组的顺序查找后按顺序放入数组
就是使
$array[0]=英语
$array[1]=政治
$array[2]=语文
+----------+------------+
| id | subject |
+----------+------------+
| 1 | 语文 |
| 2 | 数学 |
| 3 | 英语 |
| 4 | 政治 |
| 5 | 物理 |
如果我要选出在表的subject列一个数组中$kk=array("英语","政治","语文");
的所以直,并按照数组顺序返回应该怎么写SQL语言啊
就是我现在要返回
表中
"英语","政治","语文"
顺序的ID
返回 3 4 1我怕我说得不清楚,我在说一次吧,我语文不怎么好(以下程序的表结构是此贴上面那个表)
$kk=array("英语","政治","语文");
$sql="SELECT * FROM TABLE WHERE subject='$kk[0]' or subject='$kk[1]' or subject='$kk[2]' ";
$a=mysql_query($sql);
$array=array();
while($kk=mysql_fetch_array($a))
{
$array[]=$kk[1];
}结果返回的是 $array[0]=语文,$array[1]=英语,$array[3]=政治
按照表的顺序查找的,
但我想按照数组的顺序查找后按顺序放入数组
就是使
$array[0]=英语
$array[1]=政治
$array[2]=语文
看看这个
foreach ($kk as $value) {
$s1 = $s1."'".$value."'," ;
}
$s1 = $s1."'NOVALUE'" ;$sql="SELECT * FROM TABLE WHERE subject in ($s1) order by instr('$s1', subject)";
或参考:
http://www.csdn.net/help/over.asp
http://topic.csdn.net/u/20080110/19/7cb462f1-cac6-4c28-848e-0a879f4fd642.html
=============================================================================
问题解决,请及时结贴。
正确结贴方法:
管理帖子-->给分-->输入密码-->结贴