我的mysql_query
必须包含WHERE columnName = '$variable1'
。例如:
$result = mysql_query("SELECT * FROM database WHERE columnName = '$variable1'");
我希望$variable1
的内容检索ColumnName中的任何值;有点像通配符操作符。我尝试使用这样的星号(*
):
$variable1 = '*'
$result = mysql_query("SELECT * FROM database WHERE columnName = '$variable1'");
while($row = mysql_fetch_array($result)) {
// Echo the content of ALL ROWS IN TABLE here
}
此回调的结果在回显时应显示数据库中的所有行。星号不作为通用变量,也不是空格(例如$variable = ''
)。 MySQL中的通配符运算符与所有文本组合匹配是什么?
答案 0 :(得分:3)
SQL中的通配符是%
。您需要使用LIKE
代替=
进行通配符匹配。
例如:
SELECT *
FROM table
WHERE ColumnHas LIKE "%something%";
此示例将匹配中间带有“something”的任何字符串,例如
"This is something to match".
如果您只希望在字符串的开头匹配通配符,则排除尾随%
(反之亦然)。
对于您的情况,
$variable1 = '%'
$result = mysql_query("SELECT * FROM database WHERE columnName LIKE '$variable1'");
应该有用。
但是你的用例让我觉得不需要通配符匹配。您也可以使用
$result = mysql_query("SELECT * FROM database WHERE columnName NOT NULL");
提供columnName
定义为将NULL
保留为默认值。
答案 1 :(得分:1)
这将有效:
$variable1 = "' OR 1 = 1;"
答案 2 :(得分:0)
如果要检索特定列中具有任何值的行,您只需避免在WHERE
子句中提及该列。