比较两列的值

时间:2014-03-24 04:24:49

标签: mysql select sql-like

有没有办法比较MySQL中两列的值?例如,如果我有一个表:

+----------------+
| Col1  | Col2   |
|----------------|
| abc   | 123abc |
| def   | 234def |
|       | 123ghi |
+----------------+

我想检索Col2中包含Col1值的所有条目:

+---------+
| NewCol  |
|---------|
| 123abc  |
| 234def  | 
+---------+

我该怎么做?

这是一个伪查询,可以进一步解释。

SELECT Col2 FROM TableName WHERE Col2 LIKE Col1;

3 个答案:

答案 0 :(得分:5)

使用LOCATE()

WHERE LOCATE(Col1, Col2);

如果Col1中包含Col2,则返回非零值。

更新

请注意,空子字符串始终包含在另一个字符串中,因此在这种情况下,您需要另一个条件:

WHERE LENGTH(Col1) AND LOCATE(Col1, Col2);

答案 1 :(得分:0)

SELECT Col2 FROM TableName WHERE Col2 in(SELECT Col1 from TableName);

答案 2 :(得分:0)

SELECT Col2 FROM TableName WHERE Col2 LIKE Concat("%",Col1,"%");