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正则表达式进行黑客攻击既困难又昂贵。