Postgresql从哪里选择

时间:2017-07-24 04:08:35

标签: postgresql

我想根据列值查找记录。

我知道如何使用select from where命令来执行此操作。

但是我遇到了我想要查找值的列的值的问题。

问题是该值有一个/。

所以这是命令:

SELECT COLA FROM TABLENAME WHERE COLB = cotton/candy;

这给了我一个问题作为专栏"棉花"不存在。

非常感谢任何帮助。

提前致谢并致以最诚挚的问候,

2 个答案:

答案 0 :(得分:3)

如果您将值包装在引号中,这应该有效,因为它将查找完全匹配的字符串:

SELECT COLA FROM TABLENAME WHERE COLB = 'cotton/candy';

答案 1 :(得分:1)

价值的内容根本不重要。

使用或不使用/时,您的语法无效。

COLB = cotton/candy;

一样错误
COLB = cotton;

因为在这两种情况下都不使用'quotes for literals'

但是有一个更广泛的问题。说你写:

COLB = '$1'

其中$1是一些程序变量替换。然后有人发送值');DROP TABLE COLA;--。哎呦!他们在你的数据库上运行了一个命令并丢弃了你的表。这称为SQL injection并且为了避免它,您应该确保在查询中使用绑定参数(“参数化语句”,“预准备语句”)来所有用户提供的或插值的值