SQL正则表达式

时间:2016-03-09 10:03:28

标签: mysql regex

我有2列,名称为col1和col2

 col1        col2

  abc         abc1 
  pqr         pqr1 
  xyz         axyz1
  bc           dfg

我需要第三列,其结果是col1是否为col2中的substring

答案

   col1        col2      col3

   abc         abc1      1
   pqr         pqr1      1
   xyz         axyz1     1
   bc          dfg       0

4 个答案:

答案 0 :(得分:2)

有一个case表达式,您可以使用like检查col2是否包含col1:

select col1, col2, case when col2 like '%' || col1 || '%' then 1 else 0 end
from tablename

||是ANSI SQL串联。有些产品会改为+concat()

答案 1 :(得分:0)

在SQL Server中使用CASE和CHARINDEX:

select col1, col2, 
CASE WHEN CHARINDEX(col1, col2)>0 THEN 1 ELSE 0 END as col3 
from table

答案 2 :(得分:0)

如果您使用sql server,则可以尝试以下

select [col1], [col2], CASE WHEN CHARINDEX([col1],[col2],1) >0 THEN  1 ELSE 0 END AS Col3
from table1

答案 3 :(得分:0)

更短(MySQL,至少):

SELECT col1, col2, INSTR(col2, col1) > 0
FROM table;