Mysql 使用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%%”而不

好的,我用了“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 "%'
谁能告诉我这个问题吗


谢谢。

使用
concat
,因为%是字符文本

LIKE concat('%',u.country,'%')

请注意,在SQL中使用这样的通配符可能会有严重的性能问题。您不会在一个小数据集中注意到它,但随着数据的增长,它会变慢,因为它必须扫描整个表才能找到匹配的记录。您最好有一个子表,这样每个任务允许的国家/地区都在一个单独的记录中,并且还可以使用记录ID而不是完整的国家/地区名称字符串来链接它们。谷歌“多对多关系”来了解更多如何做到这一点。