如何比较同一个表中的文本列的值

时间:2014-09-19 16:03:53

标签: mysql

我有一张表,其中每列代表手稿中的文字,这是一个简单的例子:

mss1  | mss2  | mss3
------------------------
The   |  The  |  A
big   |  big  |  big
black |       |
dog   |  dog  |  dog

我想显示两列具有不同值(或相同值)的行,例如我想看到mss1和mss3之间的差异。结果应如下所示:

mss1  | mss3
---------------
The   |  A
black |

这些似乎是很好的候选解决方案:

SELECT mss1, mss3 FROM table WHERE mss1 != mss3;

SELECT mss1, mss3 FROM table WHERE mss1 NOT LIKE mss3;

但是,即使将所有列从text转换为相同长度的varchar,它也无法正常工作。

我还尝试了LOCATE(See here)来找到相同的值:如果我可以在mss3中找到mss1,反之亦然,那么它们必须具有相同的值,对吧?但这也不成功。 任何的想法?看起来应该很容易,但我无法弄明白......

1 个答案:

答案 0 :(得分:1)

您查询的问题可能是NULL值被过滤掉了。为了您的目的,我认为这可能会做你想要的:

SELECT mss1, mss3
FROM table
WHERE coalesce(mss1, '') <> coalesce(mss3, '');