我想从带有密钥的表中选择记录。我的代码正在运行,但它不是选择所有关于Php和Mysql的记录,它只选择PHP,Mysql记录。 我的代码是
$skill=PHP,Mysql;
mysql_query("select * from tablename(skill) where fieldname(key) like '%$skill%'");
答案 0 :(得分:1)
尝试这样做
mysql_query("select * from skill where (key like '%PHP%' OR key like '%Mysql%')");
答案 1 :(得分:1)
由于您在$ skill变量中使用逗号分隔值,因为运算符无法正常工作,请尝试使用以下查询
select * from skill where FIND_IN_SET(keyn,'$skill')
上演示sql小提琴
答案 2 :(得分:0)
$skill="PHP,Mysql";
mysql_query("select * from skill where key like '%$skill%'");
答案 3 :(得分:0)
我假设您要搜索包含“PHP”,“MySQL”或两者的记录。你正在做的是搜索“PHP,MySQL”的确切字符串。
快速而肮脏的解决方案是将$技能转换为在逗号上拆分的数组,然后使用OR关键字搜索每个术语。
例如:
$skill = array("PHP", "MySQL");
$query = "select * from tablename(skill) where ";
foreach ($skil in $skill)
$query . "fieldname(key) like '%$skil%' OR ";
//code to remove the OR at the very end
答案 4 :(得分:0)