sql - WHERE 中的字符串比较未返回适当的行
问题描述
我有一张Parts
我用create table Parts(pid int, pname varchar(30),color varchar(30));
.
我在其中加载了一些数据:
SELECT * FROM Parts;
pid | pname | color
-----+-----------+-----------
1 | 'thing' | 'red'
2 | 'thing2' | 'red'
3 | 'thing3' | 'purple'
4 | 'thing4' | 'green'
5 | 'thing5' | 'green'
(5 rows)
我想获取 color 所在的所有行red
,但是当我尝试我认为正确的查询时,结果如下:
SELECT * FROM Parts WHERE color = 'red';
pid | pname | color
-----+-------+-------
(0 rows)
我在这里做错了什么?
谢谢你。
解决方案
您在字符串中有引号。通常psql
会显示不带引号的字符串我是否希望看到这样的输出:
SELECT * FROM Parts;
pid | pname | color
-----+-----------+-----------
1 | thing | red
2 | thing2 | red
3 | thing3 | purple
4 | thing4 | green
5 | thing5 | green
(5 rows)
所以我猜你以某种方式插入'''red'''
而不是'red'
.
一个快速的'n'dirty检查将是看:
select '-' || color || '-' from parts;
看看你得到了什么。这也会向您显示任何杂散的空白(但不是有趣的 Unicode 字符)。
推荐阅读
- python - 在 RandomForestRegressor 模型中使用平均绝对误差时如何修复“值误差”?
- php - Eloquent 获取特定表列的更高值
- python - 包含端点时 numpy.linspace 中的精度损失
- python - 在 Tensorflow 中将 1D 数组作为 3D 数组的元素传递
- php - 反转和反转数组数组
- laravel - Vue Router + Laravel:重新加载没有 404 的页面并传入路由变量
- android - 由于内存不足,Android OS 关闭了 Flutter 应用程序
- java - 球用砖弹起时出现问题(打砖块游戏)
- c# - 如果使用 Validator,try-catch 会变得无关紧要吗?
- google-cloud-build - 有没有办法在构建 Google Cloud Build 期间获取 Github Pull Request 编号?