用于检查一列是否包含另一列值的正则表达式
A regular expression to check if a column contains another column value
我有一个具体的场景,如下所述:
Table T1
包含 Name
和 status
。 Table T2
包含列 Name_status
。 status
将具有 pass
和 fail
的值。 Name_status
应该有像 <Name>_<status>ed
这样的值。
我们能否想出一个正则表达式来获取 <Name>_<status>ed
格式的所有值。
如有任何帮助,我们将不胜感激。谢谢
你可以试试这个
SELECT *
FROM T1, T2
WHERE REGEXP_REPLACE(T2.Name_Status, '^(.+?)_(.+?)ed$', '') = T1.name
AND REGEXP_REPLACE(T2.Name_Status, '^(.+?)_(.+?)ed$', '') = T1.status
这会很好
SELECT name_status
FROM(SELECT * FROM tbl1, tbl2 WHERE tbl2.name_status
REGEXP concat(tbl1.name,"_",tbl1.status)) as temp
我有一个具体的场景,如下所述:
Table T1
包含 Name
和 status
。 Table T2
包含列 Name_status
。 status
将具有 pass
和 fail
的值。 Name_status
应该有像 <Name>_<status>ed
这样的值。
我们能否想出一个正则表达式来获取 <Name>_<status>ed
格式的所有值。
如有任何帮助,我们将不胜感激。谢谢
你可以试试这个
SELECT *
FROM T1, T2
WHERE REGEXP_REPLACE(T2.Name_Status, '^(.+?)_(.+?)ed$', '') = T1.name
AND REGEXP_REPLACE(T2.Name_Status, '^(.+?)_(.+?)ed$', '') = T1.status
这会很好
SELECT name_status
FROM(SELECT * FROM tbl1, tbl2 WHERE tbl2.name_status
REGEXP concat(tbl1.name,"_",tbl1.status)) as temp