【问题标题】:SELECT WHERE IN query using text stringSELECT WHERE IN 使用文本字符串查询
【发布时间】:2025-12-09 18:30:01
【问题描述】:

我环顾四周,尝试了一些事情,但我似乎无法让这个工作......有人可以帮忙吗?

$typeall = " ('House','Condo','Loft','Townhouse','Land')";

$rs = mysql_query("SELECT * FROM 'houses' WHERE and category IN " .$typeall); 

没用

但如果我输入

$rs = mysql_query("SELECT * FROM 'houses' WHERE and category IN ('House','Condo','Loft','Townhouse','Land')"); 

效果很好,为什么?

谢谢。

【问题讨论】:

  • 对于数字,它可以完美运行,例如 $typeall = " (1,2,3,4,5)";没问题,但对于文本字符串它不起作用。
  • 您的代码究竟是如何“不起作用”的?你能发布错误消息(也许还有 DB 方案)吗?

标签: mysql select where concat


【解决方案1】:

你应该删除and:

WHERE and category IN ...

进入:

WHERE category IN ...

【讨论】:

  • 是的,很抱歉 where 和 category 是因为它是一个大型查询,我删除了一些代码以使其更容易并忘记了 AND。
【解决方案2】:

不要引用表名,并删除额外的and

$typeall = " ('House','Condo','Loft','Townhouse','Land')";
$rs = mysql_query("SELECT * FROM houses WHERE category IN " .$typeall);

【讨论】:

    【解决方案3】:

    试试这个:

    $typeall = "'House','Condo','Loft','Townhouse','Land'";
    
    $rs = mysql_query("SELECT * FROM 'houses' WHERE and category IN (".$typeall.")");
    

    可能是变量 $typeall 在括号中不起作用。

    【讨论】:

    • @Pablo 你为什么要使用以及在哪里删除它。然后尝试。