dizeleri bir listesini verir Ben Windows 7 Python2.7 kullanın ve bir mysql sunucu, pymssql ile bağlantı.Bir sql-query [Python]
Sorunum: Çok büyük bir veritabanım var ve bir listeden bir çok sözcükten (dize) eşleşen nesnelerin kimliğini seçmek istiyorum, programımı veriyorum. Bu sorguda, listemdeki bu kelimeler için% LIKE% ...% bir ifade olmalı.
Şimdiye kadar Python-Script'imi Veritabanıma bağladım ve bir imleç tanımladım. Sonra aradığım kelime ile küçük listesini hazırladık ve daha sonra Sorgumda bazı tutucuları yarattı:
query = """ SELECT BO_INDEX FROM GeoTest.dbo.Tabelle_Bohrung
WHERE BO_BEMERKUNG IN ({})""".format(placeholders)
Ben arıyorum:
İştewortliste = ['Bruch', 'Verwerfung']
placeholders = ','.join(['%s'] * len(wortliste))
benim Sorgu olduğunu tek kelime, burada kelimenin 'Bruch' için örneğin benim sorgu şu şekilde görünecektir:
query = """ SELECT BO_INDEX FROM GeoTest.dbo.Tabelle_Bohrung
WHERE BO_BEMERKUNG LIKE '%Bruch%'"""
tek bir kelime için bu sorgu sağ Id (= BO_INDEX) eşleşir. Yer tutucularla yapılan sorgu kilitlenmiyor, ancak hiçbir şeyle eşleşmiyor :(
Ama veritabanımı bir iki kelimeye ayırmayı ve listedeki her sözcük (dize) için eşleşen kimlikleri eklemeyi seviyorum (= wortliste) ve yeni bir listeye ekler. gerçekten bu sorunu çözmek için nasıl dont't
!
bu sorunu çözmeye her yeni yol için minnettarım! Teşekkür!
Evet, bu doğru! – Hardinger
Ancak sorgum hala bir şeyle eşleşmiyor, LIKE '% ...%' - ifadesini dahil etmeliyim, ancak bu örnek için nasıl olduğunu bilmiyorum. – Hardinger
Ne tür bir sorgu oluşturmak istediğinizi biliyor musunuz, bu soruyu ekleyebilir misiniz? Belki bunu kullanmak istersiniz: http://stackoverflow.com/questions/12957993/how-to-use-sql-like-condition-with-multiple-values-in-postgresql – Bahrom