MysQL RegExp-高级用法

MysQL RegExp-高级用法,mysql,sql,regex,Mysql,Sql,Regex,我有一个表reservation,其中有一列包含未规范化的数据,如 6-1,7-2,8-3,9-4,12-7, 6-7中的6引用了另一个表packages的id7是数量,包裹之间用,分隔 现在我想使用REGEXP连接这两个表。具有上述单元格的行(6-1,7-2,8-3,9-4,12-7,)将检索6,7,8,9和12包ID的package行 请帮帮我 回答: 谢谢@HamZa 但不幸的是,我必须坚持使用当前的数据库。这不是我的,系统正在运行 这就是解决办法。这可能对任何面临同样情况的人都有帮助

我有一个表
reservation
,其中有一列包含未规范化的数据,如

6-1,7-2,8-3,9-4,12-7,
6-7
中的
6
引用了另一个表
packages
的id<对于
6
而言,code>7是
数量
,包裹之间用
分隔

现在我想使用
REGEXP
连接这两个表。具有上述单元格的行(
6-1,7-2,8-3,9-4,12-7,
)将检索
6,7,8,9和12
包ID的
package

请帮帮我

回答:

谢谢@HamZa

但不幸的是,我必须坚持使用当前的数据库。这不是我的,系统正在运行

这就是解决办法。这可能对任何面临同样情况的人都有帮助

SELECT reservation.*, package.name PackageName FROM reservation, package WHERE reservation.packages REGEXP CONCAT('', package.id,'-[0-9]'); 

永远不要做这种愚蠢的数据库设计。

虽然规范化很糟糕,但不幸的是,我不得不坚持使用当前的数据库。这不是我的,系统正在运行

这就是解决办法这可能对任何面临同样情况的人都有帮助。

SELECT reservation.*, package.name PackageName 
FROM reservation, package 
WHERE reservation.packages REGEXP CONCAT('', package.id, '-[0-9]'); 

永远不要做这种愚蠢的数据库设计。

你有设计问题。解决问题的根源:如果可能,重新设计数据库。我建议使用SQL正则表达式进行黑客攻击既困难又昂贵。