当前位置: 首页 > 知识库问答 >
问题:

使用Python游标类执行多时间标记查询

郑功
2023-03-14

正在尝试执行与4个变量匹配的select查询,其中一个变量正在检查标题中的字符串。如何使用python游标类执行LIKE语句?还是另一种方式?

stmt = "SELECT * FROM publication NATURAL JOIN journal NATURAL JOIN authors WHERE name = ? AND year = ? AND booktitle = ? AND title LIKE '%%%s%%'" % (input_names, input_year, input_booktitle, input_string) 
print(stmt)
cur.execute(stmt)

编辑:表模式

%%sql
DROP TABLE IF EXISTS publication;
CREATE TABLE publication(
    ID INT PRIMARY KEY NOT NULL,
    title VARCHAR NOT NULL
);

/* Author Entity set and writes_for relationship */
DROP TABLE IF EXISTS authors;
CREATE TABLE authors(
    name VARCHAR(200) PRIMARY KEY NOT NULL,
    ID INT,
    title VARCHAR(200),
    FOREIGN KEY(id, title) REFERENCES publication(ID, title)
);

/* Journal Entity set and apart_of relationship */
DROP TABLE IF EXISTS journal;
CREATE TABLE journal(
    booktitle VARCHAR(200) PRIMARY KEY NOT NULL,
    pages INT,
    year INT(4),
    ID INT,
    title VARCHAR(200),
    FOREIGN KEY(ID, title) REFERENCES publication(ID, title)
);

共有1个答案

石臻
2023-03-14

我认为真正的问题是,你在做join,却不知道从哪里获取列(从哪个表)。

你能试着把桌子加进去吗?我不确定这是否有用,但让我们试试看(因为这些表中可能没有相同的列名)

像那样?

stmt = "SELECT * FROM publication NATURAL JOIN journal NATURAL JOIN
authors WHERE authors.name = ? AND journal.year = ? AND
journal.booktitle = ? AND journal.title LIKE     
'%%%s%%'" % (input_names, input_year, input_booktitle, input_string) 
print(stmt)
cur.execute(stmt)

第二件事:应该使用“%s”而不是“?”

stmt = "SELECT * FROM publication NATURAL JOIN journal NATURAL JOIN
authors WHERE authors.name = '%s' AND journal.year = '%s' AND
journal.booktitle = '%s' AND journal.title LIKE     
'%%%s%%'" % (input_names, input_year, input_booktitle, input_string) 
print(stmt)
cur.execute(stmt)
 类似资料:
  • 我想标记我在python中绘制的每个点,但我没有找到合适的方法。 假设我有两个名为和的元素列表,我以这种方式打印它们: 我想用变量k来标记每个点,的范围显然是从到。谢谢你抽出时间

  • 嗨,我有一个html文件解析的场景。我正在使用jsoup解析html文件,解析后我想提取头标记(h1、h3、h4)。我用过医生。select()但它将只返回标题标记值,但我的要求是我应该提取h1到h3或h4之间的标记,反之亦然。 所以这里首先搜索html字符串是否包含任何H1,H3,H4。这里我们有h4,所以包括h4,它应该搜索下一个h1或h3,直到h3我们提取字符串并把它放在一个单独的html文

  • 我想添加多个点击激活的标记和信息。我有麻烦,以显示相关的信息标记,点击后,相同的信息标记为所有标记打开。 信息来自for循环这是代码

  • 如何执行cucumber从maven与标签? 我试过的是 mvn清洁测试-Dcucumber。滤器tags=“@TestTag” 我的pom.xmltestng.xml文件,(是否有一种方法可以避免执行脚本from.xml文件,并直接使用场景或功能文件的标记名称?) 使用cucumber.io7.0.0

  • 我目前使用的是mysql 我有两个名为person和zim_list_id的表,这两个表都有超过200万行

  • 我在这里有一个网站:https://www.idee-creative.co.uk在那里我添加了自定义字段,使我能够为搜索引擎优化目的添加自定义页面标题和描述。 然而,问题是,WordPress似乎也显示了它自己的标题标签,包含了网站的标题和标语从一般设置... Wordpress标题必须来自我的header.php页面内的标记(我想无论如何)。 那么,有没有办法删除wordpress页面标题,只