MySQL Query中的字符串搜索

时间:2013-05-06 05:44:13

标签: mysql sql

我的MySQL字段有技能字段(字符串),如

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

我需要选择具有技能字段条件的列。条件可能是,

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

我如何编写查询。?我在这里使用PHP。

2 个答案:

答案 0 :(得分:3)

一种方法

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

<强> SQLFiddle

如果您将数据标准化

会更容易

答案 1 :(得分:1)

使用类似这样的程序:

Split comma separated values from one column to 2 rows in the results. MySQL

将csv技能字段拆分为每个技能行的临时表

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

然后只需在{2}结果上应用JOIN即可获得DISTICT ID。

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