我有一张表,其中每列代表手稿中的文字,这是一个简单的例子:
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,反之亦然,那么它们必须具有相同的值,对吧?但这也不成功。 任何的想法?看起来应该很容易,但我无法弄明白......
答案 0 :(得分:1)
您查询的问题可能是NULL
值被过滤掉了。为了您的目的,我认为这可能会做你想要的:
SELECT mss1, mss3
FROM table
WHERE coalesce(mss1, '') <> coalesce(mss3, '');