我有一个包含多个列的表,我正在尝试选择2列中相等的值。
我正在创建一个简单的选择
select * from table_name where column1 = column_2
但它没有任何回报。
我做对了吗?当然不会,除非它会工作:)但是,例如,如果我使用运算符
!=
它返回正确的行。发生了什么事?
答案 0 :(得分:2)
我没有复制你的问题,这告诉我你在制作桌子时可能犯了错误?我认为查询不是问题。
这是我的榜样,一步一步来。首先,我们创建表(我使用PostgreSQL 9.1):
CREATE TABLE example(
id int,
name1 text,
name2 text
);
然后我用这些行填充它:
INSERT INTO example (id, name1, name2)
VALUES (0, 'Bird', 'Cheese');
INSERT INTO example (id, name1, name2)
VALUES (1, 'Bear', 'Honey');
INSERT INTO example (id, name1, name2)
VALUES (2, 'Fish', 'Fish');
INSERT INTO example (id, name1, name2)
VALUES (3, 'Bread', 'Bread');
好的,现在,当我使用您的格式的查询时,我应该得到id = 2和id = 3的行:
SELECT * FROM example WHERE name1 = name2;
返回了正确的结果:
id | name1 | name2
----+-------+-------
2 | Fish | Fish
3 | Bread | Bread
我建议您尝试这个示例,看看它是否适用于您的PostgreSQL版本。如果确实如此,太棒了!这意味着你的表实现可能只是错误(可能是不匹配的数据类型?)。如果示例不起作用,可能是PostgreSQL版本出现了问题