0
好吧,我用“LIKE”和“LEFT JOIN”,它工作正常。使用LIKE %%与LEFT JOIN
$sql = $conn->query("SELECT * FROM tasks t
LEFT JOIN users u
ON t.allowed_countries LIKE u.country
WHERE u.username = '$username'");
但是当我尝试使用“LIKE %%”,而不使用“LIKE”,那么它给了我错误
LIKE '%" u.country "%'
谁能告诉我这个问题好吗?
谢谢。
请注意,在SQL中使用这样的通配符可能会导致严重的性能问题。你不会注意到它在一个小的数据集上,但随着数据的增长,它会减慢,因为它将不得不扫描整个表以找到匹配的记录。你最好有一个子表,以便每个任务的每个允许国家都在一个单独的记录中,并且使用记录ID而不是完整的国家名字符串将它们链接起来。谷歌的“多对多关系”来了解更多关于如何做到这一点的信息。 – Spudley 2014-12-05 21:32:32