python - SQL中的x'0a'是什么意思?

标签 python sql sqlite flask

我目前正在通过官方 Flask tutorial 工作,并且有一些我以前从未遇到过的无法解释的 SQL。我知道我们正在将值插入到 post 表中,并且对于 body 我们正在插入 'test'x'0a''body'x'0a' 是什么意思? x 是某种格式说明符吗?我四处搜索,但没有找到任何有用的信息。

INSERT INTO post (title, body, author_id, created)
VALUES
  ('test title', 'test' || x'0a' || 'body', 1, '2018-01-01 00:00:00');

最佳答案

它不是在 SQL 中,而是一些特定的 SQL 方言。根据那篇文章中的代码,它是 SQLite。所以来自the documentation :

BLOB literals are string literals containing hexadecimal data and preceded by a single "x" or "X" character. Example: X'53514C697465'

这样它就是一个包含换行符(LF,换行符)的 BLOB 文字。

select 'q' || x'0a' || 'w' as tst
<表类="s-表"> <头> tst <正文> q
w

db<> fiddle here

但是,它是特定于 SQLite 的(我不太清楚 SQLite 的内部结构,但在其他 DBMS 中将需要隐式类型转换),因此您可以在任何 DBMS(和 )都可以理解的文本中放置换行符hex 返回相同的代码点,如下所示):

select 'q
w' as tst, hex('
') as what_is_newline
tst what_is_newline
q
w
0A

db<> fiddle here

关于python - SQL中的x'0a'是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68107596/

相关文章:

python - AWS Cognito 作为网站的 Django 身份验证后端

sql - 计算连接表的列

php - mysql按特定顺序按多个值排序

node.js - NodeJS 在继续之前等待从 sql.get 分配变量

c# - x86 DLL 有效但 x64 DLL 无效

java - 在 Android 上用 Java 获取 SQLite SUM

Python argparse - 创建没有标签的子命令

python - 'collections.defaultdict' 对象没有属性 'append'

Mysql:通过多态连接对关联表中的唯一电子邮件进行计数和分组

python - 使用原始数据框的 Pandas 条形图