Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql sql查询包含或类似于作业和用户配置文件技能的单个单词_Mysql_Sql - Fatal编程技术网

Mysql sql查询包含或类似于作业和用户配置文件技能的单个单词

Mysql sql查询包含或类似于作业和用户配置文件技能的单个单词,mysql,sql,Mysql,Sql,我有两张桌子 profile\u表和jobs\u表 profile_表 --- pid | name | skill 1 | john | .net, ssrs, report 2 | kyle | java, struts 3 | milo | php, apache --- jid | title | required_skill 11 | java developer | java, struts, j2ee, hibernate 1

我有两张桌子

profile\u表
jobs\u表

profile_表

---
pid | name | skill

1   | john | .net, ssrs, report

2   | kyle | java, struts

3   | milo | php, apache
---
jid | title             | required_skill

11  | java developer    | java, struts, j2ee, hibernate

12  | web developer     | php, mysql, linux, 

13  | .net developer    | .net, wpf

14  | .net lead         | .net, visual studio, C#
工作表

---
pid | name | skill

1   | john | .net, ssrs, report

2   | kyle | java, struts

3   | milo | php, apache
---
jid | title             | required_skill

11  | java developer    | java, struts, j2ee, hibernate

12  | web developer     | php, mysql, linux, 

13  | .net developer    | .net, wpf

14  | .net lead         | .net, visual studio, C#
现在,我如何将john skill与所需技能的工作相匹配

我曾尝试将john skill作为整个字符串,并在mysql中使用类似的
进行搜索,但整个结果是一个字符串,因此它只搜索
skill
而不是
required\u skill

我想实现
所需技能中包含的任何
技能


我尝试过使用
分解
并将代码分离并存储在一个数组中,但我只想在服务器端的数据库中这样做以降低速度。

一种更简洁的方法是将数据库标准化,这样您就不会在
所需技能
列中存储多条信息

从现有表中删除
skill
required\u skill

添加一个
skill\u表
(我正在使用您的命名约定;我将其称为
skill
):

然后再创建两个两列表-一个将
配置文件
加入
技能
,另一个将
作业
加入同一
技能
表:

profile\u技能

pid | sid             

1   | 4
1   | 6
1   | 9
2   | 1  
2   | 2
3   | 7  
3   | 8
jid | sid             

11   | 1
11   | 2
11   | 3
11   | 5  
etc...
工作技能

pid | sid             

1   | 4
1   | 6
1   | 9
2   | 1  
2   | 2
3   | 7  
3   | 8
jid | sid             

11   | 1
11   | 2
11   | 3
11   | 5  
etc...
`


现在,您可以编写一个查询来提取匹配项,通过
skills
profiles
连接到
jobs
,反之亦然。

我将重构数据库模型,并在多行中拥有技能和所需技能,而不是一行中的多个值一旦重构数据库,查找具有任何技能的候选对象是一种直接的连接。要找到具备所有必要技能的候选人,谷歌关系部门。你有两个选择:使用文本搜索或以适当的关系格式存储数据。SQL通常没有任何函数允许您将一个字符串的一部分与另一个字符串的一部分进行比较。您应该重构数据库模型。否则,您必须编写复杂的过程来完成此操作。谢谢,我将使用内部联接