Mysql 使用LIKE%%和LEFT JOIN
好的,我用了“LIKE”和“LEFT JOIN”,效果很好Mysql 使用LIKE%%和LEFT JOIN,mysql,sql,Mysql,Sql,好的,我用了“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%%”而不
$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 "%'
谁能告诉我这个问题吗
谢谢。使用
concat
,因为%是字符文本
LIKE concat('%',u.country,'%')
请注意,在SQL中使用这样的通配符可能会有严重的性能问题。您不会在一个小数据集中注意到它,但随着数据的增长,它会变慢,因为它必须扫描整个表才能找到匹配的记录。您最好有一个子表,这样每个任务允许的国家/地区都在一个单独的记录中,并且还可以使用记录ID而不是完整的国家/地区名称字符串来链接它们。谷歌“多对多关系”来了解更多如何做到这一点。