我想用喜欢选择记录多个键

时间:2013-11-05 06:19:14

标签: php mysql

我想从带有密钥的表中选择记录。我的代码正在运行,但它不是选择所有关于Php和Mysql的记录,它只选择PHP,Mysql记录。 我的代码是

  $skill=PHP,Mysql;

  mysql_query("select * from tablename(skill) where fieldname(key) like '%$skill%'");

5 个答案:

答案 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')

http://sqlfiddle.com/#!2/181c74/5

上演示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)

在查询中使用in

select * from `skills` WHERE skillslist in ('Php','Javascript')

运行演示Fiddle