0

My MySQL field having skills field(string) like,

1)php,mysql
2)java
3)java,c

I need to select the column with skills field condition. Condition may be Like,

skills="php"    // o/p => 1st column
or
skills = "mysql,c"   // o/p => 1st and 3rd column

How I can write Query.? Here im using PHP.

4

2 回答 2

3

一种方法

SELECT *
  FROM table1
 WHERE skills LIKE '%mysql%' 
    OR skills LIKE '%c%'

SQLFiddle

如果你标准化你的数据会容易得多

于 2013-05-06T05:49:07.353 回答
1

使用这样的过程:

将结果中的逗号分隔值从一列拆分为两行。MySQL

将您的 csv 技能字段拆分为一个临时表,其中包含每个技能的行

然后用你的搜索参数做同样的事情(我假设也是传入的 csv 字符串)

然后只需JOIN在两个结果上应用 a 并获取DISTICTId。

在 MySQL 中有许多拆分逗号分隔字符串的解决方案(尽管它在此任务上并不是特别好)...如果您不能正确规范化数据,那么您就不能很好地抱怨低效的查询例程。

于 2013-05-06T20:31:57.340 回答