我想根据列值查找记录。
我知道如何使用select from where命令来执行此操作。
但是我遇到了我想要查找值的列的值的问题。
问题是该值有一个/。
所以这是命令:
SELECT COLA FROM TABLENAME WHERE COLB = cotton/candy;
这给了我一个问题作为专栏"棉花"不存在。
非常感谢任何帮助。
提前致谢并致以最诚挚的问候,
答案 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并且为了避免它,您应该确保在查询中使用绑定参数(“参数化语句”,“预准备语句”)来所有用户提供的或插值的值