有没有办法比较MySQL中两列的值?例如,如果我有一个表:
+----------------+
| Col1 | Col2 |
|----------------|
| abc | 123abc |
| def | 234def |
| | 123ghi |
+----------------+
我想检索Col2
中包含Col1
值的所有条目:
+---------+
| NewCol |
|---------|
| 123abc |
| 234def |
+---------+
我该怎么做?
这是一个伪查询,可以进一步解释。
SELECT Col2 FROM TableName WHERE Col2 LIKE Col1;
答案 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,"%");