Pythonda SQL soraglarynda mantiqy amallar
Saýlap alyş şertinde OR we
AND buýruklarynyň kömegi bilen has çylşyrymly
kombinasiýalar ýasap bolýar. Olar Pythondaky if
gurluşyndaky degişlileri ýaly işleýär.
Mysallar bilen göreliň.
Mysal
Maşy 500 we ýaşy
23 ýaş bolan ulanyjylary saýlap alyň:
query = "SELECT * FROM users WHERE salary=500 AND age=23"
Ýerine ýetirilen kodyň netijesi:
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
Mysal
Maşy 500 ýa-da ýaşy
23 ýaş bolan ulanyjylary saýlap alyň:
query = "SELECT * FROM users WHERE salary=500 OR age=23"
Ýerine ýetirilen kodyň netijesi:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
Mysal
Maşy 450 bilen
900 aralygyndaky ulanyjylary saýlap alyň:
query = "SELECT * FROM users WHERE salary>450 AND salary<900"
Ýerine ýetirilen kodyň netijesi:
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
Mysal
Ýaşy 23 bilen
27 ýaş aralygynda (şol ýaşlar hem girizilmek bilen) bolan ulanyjylary saýlap alyň:
query = "SELECT * FROM users WHERE age>=23 AND age<=27"
Ýerine ýetirilen kodyň netijesi:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
Mysal
OR we
AND buýruklarynyň çylşyrymly kombinasiýalaryny, şertleriň tertibini görkezmek üçin, ýaýjyk ýaýlary bilen toparlap bolýar:
query = "SELECT * FROM users WHERE (age<20 AND age>27) OR (salary>300 AND salary<500)"
Ýerine ýetirilen kodyň netijesi:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
Amaly meseleler
25 ýaşdan (girizilmeýär) bolan we
28 ýaşa çenli (girizilmek bilen) bolan ulanyjylary saýlap alyň.
user1 ulanyjysyny saýlap alyň.
user1 we user2 ulanyjylaryny saýlap alyň.
user3 ulanyjysyndan başga hemmesini saýlap alyň.
27 ýaşdaky ýa-da maşy
1000 bolan ähli ulanyjylary saýlap alyň.
27 ýaşdaky ýa-da maşy
400 bolmadyk ähli ulanyjylary saýlap alyň.
23 ýaşdan (girizilmek bilen) bolan we
27 ýaşa çenli (girizilmeýär) bolan ýa-da maşy
1000 bolan ähli ulanyjylary saýlap alyň.
23 ýaşdan
27 ýaşa çenli bolan ýa-da maşy
400 bilen
1000 aralygynda bolan ähli ulanyjylary saýlap alyň.