生成封面更新脚本.md 3.1 KB

生成批量更新封面SQL脚本的步骤

方法一:手动生成(推荐)

步骤1:查询所有书籍

执行以下SQL查询所有书籍:

SELECT content_id, title, author, cover_url FROM content ORDER BY content_id;

步骤2:为每本书找封面

  1. 打开浏览器,访问 https://book.douban.com/
  2. 搜索每本书的书名
  3. 右键点击封面图片 → "复制图片地址"
  4. 或者直接搜索"书名 封面 图片",找到合适的图片URL

步骤3:生成更新SQL

根据查询结果,为每本书生成UPDATE语句:

-- 示例:假设查询结果如下
-- content_id | title | author
-- 1          | 活着  | 余华
-- 2          | 三体  | 刘慈欣

-- 生成的更新SQL:
UPDATE `content` SET `cover_url` = 'https://img3.doubanio.com/view/subject/l/public/s1070959.jpg' WHERE `content_id` = 1;
UPDATE `content` SET `cover_url` = 'https://img3.doubanio.com/view/subject/l/public/s2768378.jpg' WHERE `content_id` = 2;

方法二:使用Python脚本自动生成(需要Python环境)

创建一个Python脚本来自动生成SQL:

# generate_cover_update.py
books = [
    {"id": 1, "title": "活着", "cover_url": "https://img3.doubanio.com/view/subject/l/public/s1070959.jpg"},
    {"id": 2, "title": "三体", "cover_url": "https://img3.doubanio.com/view/subject/l/public/s2768378.jpg"},
    # 添加更多书籍...
]

sql_statements = []
for book in books:
    sql = f"UPDATE `content` SET `cover_url` = '{book['cover_url']}' WHERE `content_id` = {book['id']};"
    sql_statements.append(sql)

print("\n".join(sql_statements))

方法三:使用Excel生成

  1. 执行查询SQL,导出结果为Excel
  2. 在Excel中添加"封面URL"列
  3. 填写每本书的封面URL
  4. 使用公式生成UPDATE语句:

    ="UPDATE `content` SET `cover_url` = '"&C2&"' WHERE `content_id` = "&A2&";"
    

    其中A列是content_id,C列是cover_url

快速获取封面URL的方法

豆瓣API(如果可用)

https://frodo.douban.com/api/v2/search/movie?q=书名

然后从返回的JSON中找到封面URL

常用书籍封面URL格式

  • 豆瓣:https://img3.doubanio.com/view/subject/l/public/图片ID.jpg
  • Google Books:https://books.google.com/books/content?id=书籍ID&printsec=frontcover&img=1

批量更新模板

复制下面的模板,根据你的书籍信息修改:

-- 批量更新封面SQL
-- 请根据实际查询结果修改下面的内容

UPDATE `content` SET `cover_url` = 'https://example.com/cover1.jpg' WHERE `content_id` = 1;
UPDATE `content` SET `cover_url` = 'https://example.com/cover2.jpg' WHERE `content_id` = 2;
UPDATE `content` SET `cover_url` = 'https://example.com/cover3.jpg' WHERE `content_id` = 3;
-- ... 继续添加更多书籍

-- 或者使用CASE语句(适用于少量书籍)
UPDATE `content` 
SET `cover_url` = CASE 
    WHEN `content_id` = 1 THEN 'https://example.com/cover1.jpg'
    WHEN `content_id` = 2 THEN 'https://example.com/cover2.jpg'
    WHEN `content_id` = 3 THEN 'https://example.com/cover3.jpg'
    ELSE `cover_url`
END
WHERE `content_id` IN (1, 2, 3);