我目前正在通过官方 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
w
db<> fiddle here
但是,它是特定于 SQLite 的(我不太清楚 SQLite 的内部结构,但在其他 DBMS 中将需要隐式类型转换),因此您可以在任何 DBMS(和 )都可以理解的文本中放置换行符hex
返回相同的代码点,如下所示):
select 'q w' as tst, hex(' ') as what_is_newline
tst what_is_newline q
w0A
db<> fiddle here
关于python - SQL中的x'0a'是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68107596/