使用php数组创建mysql查询

使用php数组创建mysql查询,php,mysql,arrays,Php,Mysql,Arrays,我已经和阿瑞在下面了 $titles=array("Dr.","Ms.","Mr."); 在foreach循环之后,我创建下面的查询 SELECT * FROM `table` WHERE title = 'Dr.' or title = 'Ms.' or title = 'Mr.' ) group by sentences 输出起始于 先生。 太太 先生 博士 我想先把DR.放在数组中有序的Ms.而不是Mr.上()只要您的输入经过消毒,您就可以使用内爆来准备语句 $stmt = 'SE

我已经和阿瑞在下面了

  $titles=array("Dr.","Ms.","Mr.");
在foreach循环之后,我创建下面的查询

SELECT * FROM `table` WHERE title = 'Dr.' or title = 'Ms.' or title = 'Mr.' ) group by sentences
输出起始于

先生。 太太 先生 博士


我想先把DR.放在数组中有序的Ms.而不是Mr.上()

只要您的输入经过消毒,您就可以使用
内爆
来准备语句

$stmt = 'SELECT * FROM `table` ';
$stmt .= "WHERE title = '" . implode("' OR title = '", $titles) . "'";
结果

SELECT * FROM `table` WHERE title = 'Dr.' OR title = 'Ms.' OR title = 'Mr.'
SELECT * FROM `table` WHERE title IN ('Dr.', 'Ms.', 'Mr.')

您也可以在中使用

$stmt = 'SELECT * FROM `table` ';
$stmt .= "WHERE title IN ('" . implode("', '", $titles) . "')";
结果

SELECT * FROM `table` WHERE title = 'Dr.' OR title = 'Ms.' OR title = 'Mr.'
SELECT * FROM `table` WHERE title IN ('Dr.', 'Ms.', 'Mr.')
您需要通过
修复您的
组;你没有正确使用它

如果要对标题的顺序进行排序,可以尝试:

ORDER BY
  CASE
    WHEN title = 'Dr' THEN 1
    WHEN title = 'Ms.' THEN 2
    WHEN title = 'Mr.' THEN 3
    ELSE 4
  END

只要输入经过消毒,就可以使用
内爆
来准备语句

$stmt = 'SELECT * FROM `table` ';
$stmt .= "WHERE title = '" . implode("' OR title = '", $titles) . "'";
结果

SELECT * FROM `table` WHERE title = 'Dr.' OR title = 'Ms.' OR title = 'Mr.'
SELECT * FROM `table` WHERE title IN ('Dr.', 'Ms.', 'Mr.')

您也可以在
中使用

$stmt = 'SELECT * FROM `table` ';
$stmt .= "WHERE title IN ('" . implode("', '", $titles) . "')";
结果

SELECT * FROM `table` WHERE title = 'Dr.' OR title = 'Ms.' OR title = 'Mr.'
SELECT * FROM `table` WHERE title IN ('Dr.', 'Ms.', 'Mr.')
您需要通过
修复您的
组;你没有正确使用它

如果要对标题的顺序进行排序,可以尝试:

ORDER BY
  CASE
    WHEN title = 'Dr' THEN 1
    WHEN title = 'Ms.' THEN 2
    WHEN title = 'Mr.' THEN 3
    ELSE 4
  END
你可以试着用一种易于阅读的语句

SELECT * 
FROM  `urls` 
WHERE  `id` 
IN ( 1, 2, 4 ) 
ORDER BY  `urls`.`id` ASC 
LIMIT 0 , 30
你可以试着用一种易于阅读的语句

SELECT * 
FROM  `urls` 
WHERE  `id` 
IN ( 1, 2, 4 ) 
ORDER BY  `urls`.`id` ASC 
LIMIT 0 , 30

仍然不按顺序从
表中选择*从
中选择('Dr.,'Ms.,'Mr.)中的标题限制0,30仍然不按顺序从
表中选择*从
中选择('Dr.,'Ms.,'Mr.)中的标题限制0,30