MysQL RegExp - 高级用法

时间:2014-05-20 08:50:47

标签: mysql sql regex

我有一个表reservation,其中包含一个非标准化数据的列,如

6-1,7-2,8-3,9-4,12-7,

6中的6-7指的是另一个表packages的ID。对于7quantity6,而且,分隔了包。

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

请帮帮我。

答案:

谢谢@HamZa

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

这是解决方案。任何面对同样情况的人都可能会有所帮助。

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

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

1 个答案:

答案 0 :(得分:0)

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

这是解决方案。 任何遇到同样情况的人都可能会有所帮助。

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

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