Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL查询:如果REGEXP$var为空,则选择all?_Php_Mysql_Regex_Select - Fatal编程技术网

Php MySQL查询:如果REGEXP$var为空,则选择all?

Php MySQL查询:如果REGEXP$var为空,则选择all?,php,mysql,regex,select,Php,Mysql,Regex,Select,上面的代码非常有效,但是如果$cities为空,则不会选择任何内容。如果$cities没有值,我想选择所有行。我怎样才能做到这一点?谢谢 您需要在php中使用一个条件,当$cities变量为空时,它会删除where子句。或者,您可以使用一个正则表达式来匹配所有内容,如/^/,但它并不特别优雅。您应该检查$cities是否为空。如果是,您可以将其替换为。*(匹配所有内容)或从查询中删除from子句(将提高性能) 或许 $results = mysql_query("SELECT * FROM me

上面的代码非常有效,但是如果
$cities
为空,则不会选择任何内容。如果
$cities
没有值,我想选择所有行。我怎样才能做到这一点?谢谢

您需要在php中使用一个条件,当
$cities
变量为空时,它会删除where子句。或者,您可以使用一个正则表达式来匹配所有内容,如
/^/
,但它并不特别优雅。

您应该检查$cities是否为空。如果是,您可以将其替换为。*(匹配所有内容)或从查询中删除from子句(将提高性能)

或许

$results = mysql_query("SELECT * FROM messages". 
(empty($cities)? "":" WHERE content REGEXP '$cities'"));

对,如果其他人会这样做:P我在想什么??谢谢
$results = mysql_query("SELECT * FROM messages". 
(empty($cities)? "":" WHERE content REGEXP '$cities'"));
$results = mysql_query("SELECT * FROM messages WHERE '$cities' = '' OR content REGEXP '$cities'");