我想用键从表中选择记录。我的代码正在运行,但它没有选择有关 Php 和 Mysql 的所有记录,它只选择 PHP、Mysql 记录。我的代码是
$skill=PHP,Mysql;
mysql_query("select * from tablename(skill) where fieldname(key) like '%$skill%'");
由于您在 $skill 变量中使用逗号分隔值,例如运算符将无法正常工作,请尝试使用以下查询
select * from skill where FIND_IN_SET(keyn,'$skill')
在http://sqlfiddle.com/#!2/181c74/5上演示 sql fiddle
尝试这样做
mysql_query("select * from skill where (key like '%PHP%' OR key like '%Mysql%')");
我假设您要搜索包含“PHP”、“MySQL”或两者的记录。您正在做的是搜索“PHP,MySQL”的确切字符串。
一个快速而肮脏的解决方案是将 $skill 转换为以逗号分隔的数组,然后使用 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
$skill="PHP,Mysql";
mysql_query("select * from skill where key like '%$skill%'");