Sqlite - 从行“专辑”中获得不同的结果 - python
Posted
技术标签:
【中文标题】Sqlite - 从行“专辑”中获得不同的结果 - python【英文标题】:Sqlite - get different results from row "album" - python 【发布时间】:2021-03-24 08:35:16 【问题描述】:问题
当我在我的 sqlite 数据库中搜索名称为“蝙蝠侠”的专辑列表时,它会给我一个带有“蝙蝠侠”的曲目列表。
我有一个名为“tracks”的表格,其中包含以下列:title
、album
、comment
、genre
、artist
、composer
、year
代码如下:
import sqlite3
connecttosql = sqlite3.connect('musicdatabase.db')
connectioncursor = connecttosql.cursor()
def playmusic(name):
#connectioncursor.execute("SELECT title, composer, album, year FROM tracks WHERE album LIKE ?", ('%' +name+ '%',) ) #This is for more detail
connectioncursor.execute("SELECT album FROM tracks WHERE album LIKE ?", ('%' +name+ '%',) ) #This is for just the album name
rows = connectioncursor.fetchmany(10)
print(rows)
print("Finish")
input()
connecttosql.commit()
connecttosql.close()
try:
s=raw_input("name: ")
playmusic(s)
except Exception as e:
print(e)
print("Error")
结果如下:
[(u'Batman Return of the Joker',), (u'Batman Return of the Joker',), (u'Batman Return of the Joker',), (u'Batman Return of the Joker',), (u'Batman Return of the Joker',), (u'Batman Return of the Joker',), (u'Batman Return of the Joker',), (u'Batman Return of the Joker',), (u'Batman Return of the Joker',), (u'Batman Return of the Joker',)]
这是我想要的:
[(u'Batman Return of the Joker',), (u'1989 Batman on Nes',), (u'Batman on Psx',), (u'Other Batman game',)]
我假设它是按列搜索,但我不确定在哪里执行此操作。如果有人有任何想法,请告诉我。我也会继续研究的。
感谢您的宝贵时间,
【问题讨论】:
【参考方案1】:我想出了自己的答案!您需要使用DISTINCT
语句返回 unqie 值:
connectioncursor.execute("SELECT DISTINCT album FROM tracks WHERE album LIKE ?", ('%' +name+ '%',) )
https://www.dofactory.com/sql/select-distinct
【讨论】:
以上是关于Sqlite - 从行“专辑”中获得不同的结果 - python的主要内容,如果未能解决你的问题,请参考以下文章