我正在尝试使用sql查询,但我得到了多次相同的结果。
我读到我必须使用内连接或左连接来避免这种情况。唯一的问题是,我是mysql的新手,所以我实际上不能成功地进行查询。
查询是这样的
SELECT *
FROM table1,table2
WHERE table1.name LIKE '%$str%'
OR
table1.last_name LIKE '%$str%'$str是一个字符串,我将其传入php函数以便进行搜索。
发布于 2011-10-13 06:19:39
您需要在这两个表之间建立连接。
SELECT *
FROM table1
INNER JOIN table2
ON table1.key = table2.key
WHERE table1.name LIKE '%$str%'
OR
table1.last_name LIKE '$str%'您还应该使用mysql_real_escape_string来防止SQL注入。
$query = "SELECT *
FROM table1
INNER JOIN table2
ON table1.key = table2.key
WHERE table1.name LIKE '%" . mysql_real_escape_string($str) ."%'
OR
table1.last_name LIKE '%" . mysql_real_escape_string($str) ."%'";以下是有关escape string的文档。
发布于 2011-10-13 06:19:50
您可以尝试:
SELECT DISTINCT t1,*, t2.*
FROM table1 t1 INNER JOIN table2 t2
ON t1.id = t2.table1_id
WHERE
table1.name LIKE '%$str%' OR
table1.last_name LIKE '%$str%'https://stackoverflow.com/questions/7747256
复制相似问题