如何在MySQL中选择数据为| xx | xx | xx的|

如何在MySQL中选择数据为| xx | xx | xx的|,mysql,Mysql,我想问: 我有两个表employee,其中包含字段ID,Fullname,email。。。表任务,带有字段任务名,员工名单 通过字段list|u employee我保存了数据示例|1509 | 1510 | 1511 | 现在我想从字段list\u employee 救救我 谢谢以下查询可能与您的想法大致相同: SELECT t.*, e.* FROM task t INNER JOIN employee e ON t.list_employee LIKE CONCAT('%|', e.

我想问:

我有两个表
employee
,其中包含字段
ID
Fullname
email
。。。表
任务
,带有字段
任务名
员工名单

通过字段
list|u employee
我保存了数据示例
|1509 | 1510 | 1511 |

现在我想从字段
list\u employee

救救我


谢谢

以下查询可能与您的想法大致相同:

SELECT t.*, e.*
FROM task t
INNER JOIN employee e
    ON t.list_employee LIKE CONCAT('%|', e.ID, '|%')
-- WHERE t.name_task = 'some task'
这将使给定的任务记录及其管道分隔的员工列表与
employee
表中的每个匹配记录相匹配。请注意,正如上面所有的评论所说,以这种方式存储非规范化数据是一种不好的做法。保存任务及其相关员工的更好方法如下:

name_task | ID
cleaning  | 1509
cleaning  | 1510
cleaning  | 1511
washing   | 1001
...

这使得处理数据变得更加容易,因为数据库不再需要从字符串中筛选员工。

这种数据违反了of,因此如果您可以将其重新构造为适当的关系形式,效果会更好。您的数据状态不佳,但我想说的是,如果你至少不向我们展示你的预期产出,那么你就不值得回答。以这种方式存储数据是个坏主意,对不起。由于这些数据,您将遇到各种复杂的查询问题