-1

我想用键从表中选择记录。我的代码正在运行,但它没有选择有关 Php 和 Mysql 的所有记录,它只选择 PHP、Mysql 记录。我的代码是

  $skill=PHP,Mysql;

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

5 回答 5

1

由于您在 $skill 变量中使用逗号分隔值,例如运算符将无法正常工作,请尝试使用以下查询

select * from skill where FIND_IN_SET(keyn,'$skill')

在http://sqlfiddle.com/#!2/181c74/5上演示 sql fiddle

于 2013-11-05T06:47:18.800 回答
1

尝试这样做

mysql_query("select * from skill where (key like '%PHP%' OR key like '%Mysql%')");
于 2013-11-05T06:46:22.410 回答
0

我假设您要搜索包含“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
于 2013-11-05T06:47:24.447 回答
0

用于in您的查询

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

运行演示小提琴

于 2013-11-05T06:59:36.533 回答
0
$skill="PHP,Mysql";

mysql_query("select * from skill where key like '%$skill%'");
于 2013-11-05T06:29:45.033 回答