在搜索了整个www之后,我终于在这里提出了一个问题,希望能有比我更有能力的回复者。
我正在尝试在我的网页上实现全文搜索。Sql查询适用于一个WHERE条件,但不适用于多个条件。不幸的是,我不知道如何在EXIST/INNER JOIN或其他运算符的帮助下解决我的问题。工作代码:
$sql = "SELECT * FROM artikel WHERE author LIKE '$suchtext' LIMIT $offset, $no_of_abs";
不起作用的代码:
$sql = "SELECT * FROM artikel WHERE (author OR shorty OR vollartikel) LIKE '%$suchtext%' LIMIT $offset, $no_of_abs";
变量$suchtext是通过jquery$ajax POST和我的php脚本正确传递和接收的。
目标示例:
author | volltext | shorty
--------+-------------+---------
tulum | tul | asf
rae | zutotu | vizetu
$suchtext是"tu"结果:2行1&Row2
我感谢你的回答。
解决方案:
$sql = "SELECT * FROM artikel WHERE author LIKE '%$suchtext%' OR shorty LIKE '%$suchtext%' OR vollartikel LIKE '%$suchtext%' LIMIT $offset, $no_of_abs";
LIKE
是一个接受两个字符串的二进制运算符。OR
是一个对布尔值进行运算的布尔运算符。
你需要明确列出这一点:
(author LIKE ? OR
shorty LIKE ? OR
vollartikel LIKE ?
)
请注意,这使用?
作为参数占位符。在应用程序中构造SQL查询时使用参数。