sql - 使用 Sequel Pro:如何更新包含查询的列?
问题描述
所以基本上我有一个名为“查询”的列,其中包含一个查询。我需要更新该查询,但不知道如何。
我尝试了一个简单的
UPDATE TABLE
SET QUERY = 'New Query'
WHERE ID = 1
但由于我在查询中已经存在'',它被丢弃了。
在这一点上超出我的联盟。试图在飞行中学习一个即将开放的职位。
解决方案
您必须在查询中转义 ',可能通过将它们加倍或在它们之前使用转义字符:
UPDATE t
SET query = 'DELETE FROM x WHERE y = ''z'' '
WHERE ID = 1
UPDATE t
SET query = 'DELETE FROM x WHERE y = \'z\' ' ESCAPE '\'
WHERE ID = 1
您还可以使用 REPLACE 让生活更轻松/更整洁,例如:
UPDATE t
SET query = REPLACE('DELETE FROM x WHERE y = "z" AND a = "b" AND c = "d" ', '"', CHAR(39))
这样你就可以使用一些在查询中不会自然出现的字符,并'
在最后替换它
我不能说哪种变体适用于您的数据库,因为您没有说您的数据库是什么...... WHERE ID = 1
推荐阅读
- python-3.x - 在 Python 函数末尾包含 print() 有什么意义?
- unix - 标准流的初始化
- javascript - 为什么我的鼠标单击一个 onclick 事件,而不是另一个
- node.js - 我在运行单元测试时收到 SequelizeConnectionError,我可以在不使用实际数据库凭据的情况下使用 jest 在节点中模拟 sequelize
- java - 如何在没有 SQL 注入漏洞的情况下在 java 中构建 sql 查询?
- zfs - 可以用映像副本替换 zfs 磁盘 [zol]
- php - 基于 Session 的 file_get_contents 的可自定义路径
- python - 如何在python中的同一对象中返回列表中的唯一对(具有不同的顺序)
- ruby-on-rails - 为什么 Rails 在验证错误后显示无效的 URL
- image - 使用 php 脚本调整图像大小。类似于 TimThumb