You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyMySQL-Python:检查用户输入的电影名是否存在且仅出现一次

解决方案:判断输入电影标题是否存在且仅出现一次

嘿,我来帮你搞定这个需求!咱们的目标很明确:检查用户输入的电影标题既存在于Movies表中,又只出现过一次。下面我会从SQL查询逻辑到具体代码实现一步步给你讲清楚。

核心思路

我们需要完成两个关键判断:

  1. 输入的标题在表中存在(出现次数≥1)
  2. 该标题的出现次数恰好等于1

最直接的方式是先统计目标标题在表中的出现次数,再根据计数结果判断是否符合要求。

1. SQL查询逻辑

不管你用什么编程语言连接数据库,核心的SQL查询都可以这么写:

-- 统计指定标题的出现次数
SELECT COUNT(*) AS occurrence_count
FROM Movies
WHERE Title = '用户输入的标题';
  • 如果返回的occurrence_count是1:符合条件(存在且仅出现一次)
  • 如果是0:标题不存在
  • 如果大于1:标题存在但重复出现

你也可以直接在SQL里返回判断结果,不用在程序里额外处理:

SELECT 
    CASE 
        WHEN COUNT(*) = 1 THEN '符合条件:存在且仅出现一次'
        WHEN COUNT(*) = 0 THEN '不符合:标题不存在'
        ELSE '不符合:标题存在但重复出现'
    END AS check_result
FROM Movies
WHERE Title = '用户输入的标题';

2. 完整代码示例(以Python + SQLite为例)

假设你用Python来实现这个功能,下面是可直接复用的代码,注释已经写得很清楚了:

import sqlite3

def validate_movie_title(input_title):
    # 连接数据库(这里用SQLite,其他数据库比如MySQL只需替换连接方式)
    conn = sqlite3.connect('your_movie_db.db')
    cursor = conn.cursor()
    
    # 用参数化查询避免SQL注入风险,这很重要!
    cursor.execute("SELECT COUNT(*) FROM Movies WHERE Title = ?", (input_title,))
    count = cursor.fetchone()[0]
    
    # 关闭数据库连接
    conn.close()
    
    # 根据计数返回结果和提示信息
    if count == 1:
        return True, f"✅ 电影「{input_title}」存在且仅出现一次"
    elif count == 0:
        return False, f"❌ 电影「{input_title}」不存在于数据库中"
    else:
        return False, f"❌ 电影「{input_title}」存在但出现了{count}次,不符合要求"

# 从键盘获取用户输入
user_title = input("请输入要查询的电影标题:")
is_valid, msg = validate_movie_title(user_title)
print(msg)

注意事项

  • 参数化查询:一定要用?(SQLite)或者%s(MySQL)这种占位符传递用户输入,不要直接拼接字符串,避免SQL注入攻击。
  • 数据库适配:如果用的是MySQL、PostgreSQL等其他数据库,只需要修改数据库连接的代码(比如用pymysql代替sqlite3),核心的统计逻辑完全一致。

内容的提问来源于stack exchange,提问作者stef

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:09:36