Các câu trả lời cho đến nay đã tạo khuôn mẫu các giá trị thành một chuỗi SQL đơn giản. Điều đó hoàn toàn tốt cho số nguyên, nhưng nếu chúng tôi muốn làm điều đó cho chuỗi, chúng tôi sẽ gặp sự cố thoát
Đây là một biến thể sử dụng truy vấn được tham số hóa sẽ hoạt động cho cả hai
placeholder= '?' # For SQLite. See DBAPI paramstyle.
placeholders= ', '.join[placeholder for unused in l]
query= 'SELECT name FROM students WHERE id IN [%s]' % placeholders
cursor.execute[query, l]
đã trả lời 12/11/2008 lúc 12. 30
16
Cách dễ nhất là biến danh sách thành
placeholder= '?' # For SQLite. See DBAPI paramstyle.
placeholders= ', '.join[placeholder for unused in l]
query= 'SELECT name FROM students WHERE id IN [%s]' % placeholders
cursor.execute[query, l]
9 trướct = tuple[l]
query = "select name from studens where id IN {}".format[t]
đã trả lời 5 tháng 4 năm 2018 lúc 18. 51
Amir Imani Amir Imani
2.7112 huy hiệu vàng20 huy hiệu bạc23 huy hiệu đồng
13
Đừng phức tạp hóa nó, Giải pháp cho việc này rất đơn giản
l = [1,5,8]
l = tuple[l]
params = {'l': l}
cursor.execute['SELECT * FROM table where id in %[l]s',params]
Tôi hy vọng điều này đã giúp
đã trả lời 22/11/2016 lúc 9. 01
HÀNG HỢP HỢP HỢP
1.43517 huy hiệu bạc14 huy hiệu đồng
9
SQL bạn muốn là
select name from studens where id in [1, 5, 8]
Nếu bạn muốn xây dựng cái này từ con trăn, bạn có thể sử dụng
l = [1, 5, 8]
sql_query = 'select name from studens where id in [' + ','.join[map[str, l]] + ']'
Hàm bản đồ sẽ chuyển đổi danh sách thành danh sách các chuỗi có thể được dán lại với nhau bằng dấu phẩy bằng str. tham gia phương pháp
Ngoài ra
l = [1, 5, 8]
sql_query = 'select name from studens where id in [' + ','.join[[str[n] for n in l]] + ']'
nếu bạn thích biểu thức trình tạo hơn chức năng bản đồ
CẬP NHẬT. S. Lott đề cập trong các nhận xét rằng các liên kết SQLite của Python không hỗ trợ trình tự. Trong trường hợp đó, bạn có thể muốn
select name from studens where id = 1 or id = 5 or id = 8
được tạo bởi
đã trả lời 12 tháng 11 năm 2008 lúc 11. 52
Blair Conrad Blair Conrad
224k25 huy hiệu vàng132 huy hiệu bạc111 huy hiệu đồng
3
sợi dây. tham gia các giá trị danh sách được phân tách bằng dấu phẩy và sử dụng toán tử định dạng để tạo chuỗi truy vấn
select name from students where id = |IN THE LIST l|
0[Cảm ơn, blair-conrad]
đã trả lời 12 tháng 11 năm 2008 lúc 11. 49
gimel gimel
80. 2k10 huy hiệu vàng74 huy hiệu bạc104 huy hiệu đồng
1
Tôi thích câu trả lời của bobince
placeholder= '?' # For SQLite. See DBAPI paramstyle.
placeholders= ', '.join[placeholder for unused in l]
query= 'SELECT name FROM students WHERE id IN [%s]' % placeholders
cursor.execute[query, l]
Nhưng tôi nhận thấy điều này
select name from students where id = |IN THE LIST l|
2Có thể được thay thế bằng
select name from students where id = |IN THE LIST l|
3Tôi thấy điều này trực tiếp hơn nếu ít thông minh hơn và ít chung chung hơn. Ở đây
t = tuple[l]
query = "select name from studens where id IN {}".format[t]
0 được yêu cầu phải có độ dài [i. e. đề cập đến một đối tượng xác định phương thức t = tuple[l]
query = "select name from studens where id IN {}".format[t]
1], đây không phải là vấn đề. Nhưng trình giữ chỗ cũng phải là một ký tự. Để hỗ trợ sử dụng trình giữ chỗ nhiều ký tựselect name from students where id = |IN THE LIST l|
4đã trả lời 20/11/2010 lúc 14. 35
jimhark jimhark
4.8581 huy hiệu vàng25 huy hiệu bạc26 huy hiệu đồng
Nếu bạn đang sử dụng PostgreSQL với thư viện Psycopg2, bạn có thể để bộ thích ứng bộ của nó thực hiện tất cả phép nội suy chuỗi và thoát cho bạn, e. g
select name from students where id = |IN THE LIST l|
5i. e. chỉ cần đảm bảo rằng bạn đang chuyển tham số
t = tuple[l]
query = "select name from studens where id IN {}".format[t]
2 dưới dạng placeholder= '?' # For SQLite. See DBAPI paramstyle.
placeholders= ', '.join[placeholder for unused in l]
query= 'SELECT name FROM students WHERE id IN [%s]' % placeholders
cursor.execute[query, l]
9. nếu đó là t = tuple[l]
query = "select name from studens where id IN {}".format[t]
4, bạn có thể sử dụng cú pháp mảng t = tuple[l]
query = "select name from studens where id IN {}".format[t]
5select name from students where id = |IN THE LIST l|
6lưu ý rằng cả hai sẽ được chuyển thành cùng một gói truy vấn, vì vậy bạn chỉ nên sử dụng cái nào dễ hơn. e. g. nếu danh sách của bạn có trong một tuple, hãy sử dụng cái trước, nếu chúng được lưu trữ trong danh sách, hãy sử dụng cái sau
đã trả lời 18 tháng 12 năm 2019 lúc 20. 56
Sam Mason Sam Mason
13. 6k1 huy hiệu vàng35 huy hiệu bạc52 huy hiệu đồng
Giải pháp cho câu trả lời @umount, bởi vì nó đã bị hỏng với bộ một phần tử, vì [1,] không phải là SQL hợp lệ
select name from students where id = |IN THE LIST l|
7Giải pháp khác cho chuỗi sql
select name from students where id = |IN THE LIST l|
8đã trả lời 26/11/2014 lúc 9. 16
Ximix Ximix
3912 huy hiệu bạc9 huy hiệu đồng
1
Chỉ cần sử dụng inline if hoạt động với chức năng tuple
select name from students where id = |IN THE LIST l|
9đã trả lời 23 tháng 9 năm 2020 lúc 9. 13
Kẻ thống trị tham lam Kẻ thống trị tham lam
1491 huy hiệu bạc14 huy hiệu đồng
1
Để chạy một lựa chọn từ nơi trường nằm trong danh sách các chuỗi [thay vì int], theo câu hỏi này, hãy sử dụng
t = tuple[l]
query = "select name from studens where id IN {}".format[t]
6. ví dụ đầy đủplaceholder= '?' # For SQLite. See DBAPI paramstyle.
placeholders= ', '.join[placeholder for unused in l]
query= 'SELECT name FROM students WHERE id IN [%s]' % placeholders
cursor.execute[query, l]
0trả lại.
t = tuple[l]
query = "select name from studens where id IN {}".format[t]
7Đối với một danh sách các ngày trong Oracle, điều này đã làm việc
placeholder= '?' # For SQLite. See DBAPI paramstyle.
placeholders= ', '.join[placeholder for unused in l]
query= 'SELECT name FROM students WHERE id IN [%s]' % placeholders
cursor.execute[query, l]
1trả lại.
t = tuple[l]
query = "select name from studens where id IN {}".format[t]
8đã trả lời 25/11/2020 lúc 4. 27
citynorman citynorman
4.4702 huy hiệu vàng34 huy hiệu bạc38 huy hiệu đồng
1
placeholder= '?' # For SQLite. See DBAPI paramstyle.
placeholders= ', '.join[placeholder for unused in l]
query= 'SELECT name FROM students WHERE id IN [%s]' % placeholders
cursor.execute[query, l]
2Điều này sẽ giải quyết vấn đề của bạn
đã trả lời 12 tháng 2 năm 2019 lúc 9. 21
placeholder= '?' # For SQLite. See DBAPI paramstyle.
placeholders= ', '.join[placeholder for unused in l]
query= 'SELECT name FROM students WHERE id IN [%s]' % placeholders
cursor.execute[query, l]
3Ký hiệu
t = tuple[l]
query = "select name from studens where id IN {}".format[t]
9 có vẻ đơn giản hơn. [Trăn 3. 7]đã trả lời 26 tháng 5 năm 2020 lúc 14. 23
user13476428 user13476428
611 huy hiệu vàng1 huy hiệu bạc3 huy hiệu đồng
một giải pháp đơn giản hơn
placeholder= '?' # For SQLite. See DBAPI paramstyle.
placeholders= ', '.join[placeholder for unused in l]
query= 'SELECT name FROM students WHERE id IN [%s]' % placeholders
cursor.execute[query, l]
4đã trả lời 22 tháng 4 năm 2019 lúc 22. 59
Omar Omeiri Omar Omeiri
1.0651 huy hiệu vàng12 huy hiệu bạc26 huy hiệu đồng
Điều này sẽ hoạt động nếu số lượng giá trị trong danh sách bằng 1 hoặc lớn hơn 1
placeholder= '?' # For SQLite. See DBAPI paramstyle.
placeholders= ', '.join[placeholder for unused in l]
query= 'SELECT name FROM students WHERE id IN [%s]' % placeholders
cursor.execute[query, l]
5đã trả lời 27 tháng 8 năm 2020 lúc 16. 48
raj raj
1661 huy hiệu bạc9 huy hiệu đồng
Ví dụ: nếu bạn muốn truy vấn sql
select name from studens where id in [1, 5, 8]
Thế còn
placeholder= '?' # For SQLite. See DBAPI paramstyle.
placeholders= ', '.join[placeholder for unused in l]
query= 'SELECT name FROM students WHERE id IN [%s]' % placeholders
cursor.execute[query, l]
7đã trả lời 18 tháng 8 năm 2016 lúc 18. 02
pgalilea pgalilea
2412 huy hiệu bạc5 huy hiệu đồng
Điều này sử dụng thay thế tham số và xử lý trường hợp danh sách giá trị duy nhất
placeholder= '?' # For SQLite. See DBAPI paramstyle.
placeholders= ', '.join[placeholder for unused in l]
query= 'SELECT name FROM students WHERE id IN [%s]' % placeholders
cursor.execute[query, l]
8đã trả lời 28 tháng 6 năm 2018 lúc 22. 08
Làm cách nào để chuyển danh sách giá trị trong SQL?
và sau đó sử dụng setParameterList["ids", list] chuyển danh sách của bạn. Hibernate sẽ thực hiện tất cả việc mở rộng cho bạn. Hiển thị hoạt động trên bài đăng này. Tất cả những gì bạn phải làm là xây dựng danh sách các mục được phân tách bằng dấu phẩy và chèn nó vào chuỗi.
Chúng ta có thể chuyển danh sách cho toán tử in trong SQL không?
Giới thiệu. Trong một câu lệnh SQL, chúng ta có thể sử dụng toán tử IN để kiểm tra xem một biểu thức có khớp với bất kỳ giá trị nào trong danh sách hay không . Như vậy, chúng ta có thể sử dụng toán tử IN thay cho nhiều điều kiện OR. Trong hướng dẫn này, chúng ta sẽ học cách chuyển một danh sách các giá trị vào mệnh đề IN của truy vấn mẫu Spring JDBC.
Làm cách nào để thêm truy vấn vào danh sách SQL?
Bạn có thể tạo danh sách các giá trị Truy vấn SQL hoặc Dữ liệu cố định. Trong ngăn thành phần Mô hình dữ liệu, nhấp vào Danh sách giá trị rồi nhấp vào Tạo danh sách giá trị mới . Nhập Tên cho danh sách và chọn Loại.
Truy vấn được tham số hóa trong python là gì?
Truy vấn được tham số hóa là truy vấn trong đó các phần giữ chỗ [ %s ] được sử dụng cho các tham số [giá trị cột] và các giá trị tham số được cung cấp tại thời điểm thực hiện