python - LEFT 函数不适用于 python 中的 sqlite3

标签 python sql sqlite

我正在尝试在 python 中运行以下 SQL 查询,我在下面设置了一个模拟数据库。

import sqlite3
from datetime import datetime
conn = sqlite3.connect('database.db')

conn.execute("""CREATE TABLE IF NOT EXISTS books (
            title TEXT,
            author TEXT,
            pages INTEGER,
            published INTEGER                
            )""")

   values = ('Deep Learning', 
      'Ian Goodfellow et al.', 
      775, 
      datetime(2016, 11, 18).timestamp())

conn.execute("""INSERT INTO books VALUES (?, ?, ?, ?)""", values)
r = conn.execute("SELECT LEFT(title,2) FROM books")
print(r.fetchall())

但是我收到错误:

  File "C:/Users/Daniel/Pictures/AllanGray/Revolut/stack.py", line 18, in <module>
    r = conn.execute("SELECT LEFT(title,2) FROM books")
  sqlite3.OperationalError: near "(": syntax error

如果我只是运行一个正常的基本选择语句,它就可以工作。 LEFT 函数出了什么问题?

最佳答案

SQLite 中没有 LEFT() 函数。
使用substr():

SELECT SUBSTR(title, 1, 2) FROM books

关于python - LEFT 函数不适用于 python 中的 sqlite3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59249923/

相关文章:

python - Pygame 键盘布局混淆

python - Jupyter Notebook在启动Python内核时自动导入模块

python - matplotlib旋转后的新线坐标点

java - Android,从sqlite检索数据并显示在自定义列表中的正确方法

java - 有没有办法从操作系统访问(读/写)特定应用程序的 sqlite 数据库?

python - python 中的展平矩阵 :

sql - Django 中的 CharField 和 TextField 有什么区别?

sql - 选择具有连接计数记录的不同记录

mysql - 对于大约 6kb 的文本,哪种 MySQL 数据类型合适?

sql - 创建外键是否意味着创建索引?