Tôi đang cố gắng tìm cách tốt nhất để định dạng chuỗi truy vấn SQL. Khi tôi gỡ lỗi ứng dụng của mình, tôi muốn đăng nhập để nộp tất cả các chuỗi truy vấn SQL và điều quan trọng là chuỗi được định dạng đúng. Show lựa chọn 1
Lựa chọn 2
Lưu ý: Tôi đã thay thế các không gian trắng bằng dấu gạch dưới 4, vì chúng được cắt bởi trình soạn thảoTùy chọn 3
Tùy chọn 4
Đối với tôi, giải pháp tốt nhất sẽ là Tùy chọn 2 nhưng tôi không thích thêm khoảng trắng khi tôi in chuỗi SQL.Option 2 but I don't like the extra whitespaces when I print the sql string. Bạn có biết bất kỳ lựa chọn nào khác không?
Douglas Phim huy hiệu vàng 35,8k88 gold badges73 silver badges89 bronze badges hỏi ngày 9 tháng 3 năm 2011 lúc 9:20Mar 9, 2011 at 9:20
3 Xin lỗi vì đã đăng lên một chủ đề cũ như vậy - nhưng là một người cũng có chung niềm đam mê với 'tốt nhất', tôi nghĩ tôi sẽ chia sẻ giải pháp của chúng tôi. Giải pháp là xây dựng các câu lệnh SQL bằng cách kết hợp theo nghĩa đen của Python (http://docs.python.org/), có thể đủ điều kiện ở đâu đó giữa tùy chọn 2 và tùy chọn 4 Mẫu mã:
Cũng hoạt động với F-String:
Pros:
GG. Huy hiệu vàng 20K1379 Huy hiệu bạc127 Huy hiệu đồng13 gold badges79 silver badges127 bronze badges Đã trả lời ngày 24 tháng 2 năm 2012 lúc 15:42Feb 24, 2012 at 15:42
user590028user590028user590028 Huy hiệu vàng 11K338 Huy hiệu bạc56 Huy hiệu đồng3 gold badges38 silver badges56 bronze badges 6 Rõ ràng bạn đã xem xét rất nhiều cách để viết SQL sao cho nó in ra, nhưng làm thế nào về việc thay đổi câu lệnh 'in' mà bạn sử dụng để ghi nhật ký, thay vì viết SQL của bạn theo những cách bạn không thích? Sử dụng tùy chọn yêu thích của bạn ở trên, làm thế nào về một chức năng ghi nhật ký như thế này:
Điều này cũng sẽ làm cho nó tầm thường để thêm logic bổ sung để phân chia chuỗi được ghi lại trên nhiều dòng nếu dòng dài hơn độ dài mong muốn của bạn. Đã trả lời ngày 9 tháng 3 năm 2011 lúc 9:55Mar 9, 2011 at 9:55
CDLKCDLKcdlk 5363 Huy hiệu bạc9 Huy hiệu Đồng3 silver badges9 bronze badges Cách sạch nhất mà tôi đã đi qua được truyền cảm hứng từ Hướng dẫn kiểu SQL.
Về cơ bản, các từ khóa bắt đầu một mệnh đề nên được liên kết đúng và tên trường, v.v., nên được căn chỉnh. Điều này trông rất gọn gàng và cũng dễ dàng gỡ lỗi hơn. Đã trả lời ngày 20 tháng 1 năm 2016 lúc 8:29Jan 20, 2016 at 8:29
aandisaandisaandis 3.7834 huy hiệu vàng27 Huy hiệu bạc39 Huy hiệu đồng4 gold badges27 silver badges39 bronze badges 1 Sử dụng thư viện 'SQLParse', chúng tôi có thể định dạng các SQLS.
Tham khảo: https://pypi.org/project/sqlparse/ Đã trả lời ngày 10 tháng 12 năm 2020 lúc 5:58Dec 10, 2020 at 5:58
Fazal sfazal sFazal S 1211 Huy hiệu bạc4 Huy hiệu đồng1 silver badge4 bronze badges
Nếu giá trị của điều kiện phải là một chuỗi, bạn có thể làm như thế này: 0Đã trả lời ngày 12 tháng 5 năm 2016 lúc 12:01May 12, 2016 at 12:01
Pangpangpangpangpangpang 8.32311 Huy hiệu vàng59 Huy hiệu bạc95 Huy hiệu Đồng11 gold badges59 silver badges95 bronze badges 3 Bạn có thể sử dụng 5 để định dạng độc đáo câu lệnh SQL được in.Điều này hoạt động rất tốt với tùy chọn 2 của bạn.option 2. Lưu ý: 6 chỉ để chứng minh các dòng trống siêu dữ liệu nếu bạn không sử dụng CleanDoc. 1Output: 2Từ các tài liệu:
Đã trả lời ngày 9 tháng 11 năm 2020 lúc 8:27Nov 9, 2020 at 8:27
Mike Scottymike ScottyMike Scotty 10,2K5 Huy hiệu vàng37 Huy hiệu bạc47 Huy hiệu đồng5 gold badges37 silver badges47 bronze badges Đây là phiên bản sửa đổi một chút của câu trả lời @aandis. Khi nói đến chuỗi RAW, ký tự tiền tố 'r' trước chuỗi. Ví dụ: 3Điều này được khuyến nghị khi truy vấn của bạn có bất kỳ ký tự đặc biệt nào như '\' yêu cầu thoát khỏi các công cụ thoát và xơ vải như Flake8 báo cáo nó là lỗi. Đã trả lời ngày 27 tháng 1 năm 2021 lúc 6:03Jan 27, 2021 at 6:03
Akhiakhiakhi 6241 Huy hiệu vàng10 Huy hiệu bạc23 Huy hiệu đồng1 gold badge10 silver badges23 bronze badges Hướng dẫn kiểu Google: https://google.github.io/styleguide/pyguide#310-strings
Chuỗi có thể được bao quanh trong một cặp ba lần kết hợp: 8 hoặc 9. Kết thúc các dòng không cần phải thoát ra khi sử dụng ba quote, nhưng chúng sẽ được bao gồm trong chuỗi. Có thể ngăn chặn sự kết thúc của ký tự dòng bằng cách thêm 0 ở cuối dòng.Sau đây sử dụng một lối thoát để tránh một đường trống ban đầu không mong muốn. 5Vì vậy, tùy chọn 2 đã sửa đổi: 6 1: 7Đã trả lời ngày 22 tháng 3 lúc 8:13Mar 22 at 8:13
Demzthe DemzThe Demz 6.8865 huy hiệu vàng37 Huy hiệu bạc42 Huy hiệu đồng5 gold badges37 silver badges42 bronze badges Để tránh định dạng hoàn toàn, tôi nghĩ rằng một giải pháp tuyệt vời là sử dụng các thủ tục.formatting entirely, I think a great solution is to use procedures. Gọi một thủ tục cung cấp cho bạn kết quả của bất kỳ truy vấn nào bạn muốn đưa vào quy trình này. Bạn thực sự có thể xử lý nhiều truy vấn trong một thủ tục. Cuộc gọi sẽ chỉ trả lại truy vấn cuối cùng được gọi.result of whatever query you want to put in this procedure. You can actually process multiple queries within a procedure. The call will just return the last query that was called. Mysql 8Python 9Đã trả lời ngày 13 tháng 12 năm 2018 lúc 11:40Dec 13, 2018 at 11:40
ParoofkeyparoofkeyParoofkey Huy hiệu đồng bạc 2011 7 Huy hiệu đồng1 silver badge11 bronze badges Đã trả lời ngày 18 tháng 5 lúc 17:06May 18 at 17:06
MORTEZAMORTEZAmorteza 3054 Huy hiệu bạc15 Huy hiệu Đồng4 silver badges15 bronze badges Bạn có thể đặt tên trường vào một mảng "trường", và sau đó: 0Đã trả lời ngày 9 tháng 3 năm 2011 lúc 9:23Mar 9, 2011 at 9:23
jcomeau_ictxjcomeau_ictxjcomeau_ictx 37K6 Huy hiệu vàng92 Huy hiệu bạc102 Huy hiệu Đồng6 gold badges92 silver badges102 bronze badges 3 Tôi sẽ đề nghị gắn bó với tùy chọn 2 (Tôi luôn sử dụng nó cho các truy vấn phức tạp hơn 2) và nếu bạn muốn in nó theo một cách hay, bạn luôn có thể sử dụng một mô -đun riêng.Đã trả lời ngày 9 tháng 3 năm 2011 lúc 9:40Mar 9, 2011 at 9:40
Đối với các truy vấn ngắn có thể phù hợp với một hoặc hai dòng, tôi sử dụng giải pháp theo nghĩa đen trong giải pháp được chọn trên cùng ở trên. Đối với các truy vấn dài hơn, tôi chia chúng thành các tệp 3. Sau đó tôi sử dụng hàm trình bao bọc để tải tệp và thực thi tập lệnh, một cái gì đó như: 1Tất nhiên điều này thường sống trong một lớp học nên tôi thường không phải vượt qua 4 một cách rõ ràng. Tôi cũng thường sử dụng 5, nhưng điều này có ý tưởng chung. Sau đó, các tập lệnh SQL hoàn toàn khép kín trong các tệp của riêng họ với sự tô sáng cú pháp của riêng họ.Đã trả lời ngày 17 tháng 12 năm 2013 lúc 15:31Dec 17, 2013 at 15:31
2[Chỉnh sửa bằng nhận xét để nhận xét] Có một chuỗi SQL bên trong một phương thức không có nghĩa là bạn phải "lập bảng" nó: 3Đã trả lời ngày 9 tháng 3 năm 2011 lúc 9:30Mar 9, 2011 at 9:30
John Machinjohn MachinJohn Machin 79,8K11 Huy hiệu vàng138 Huy hiệu bạc185 Huy hiệu đồng11 gold badges138 silver badges185 bronze badges 6 Multiline ở Python là gì?Một chuỗi đa dòng trong Python bắt đầu và kết thúc bằng ba trích dẫn đơn hoặc ba trích dẫn kép. Bất kỳ trích dẫn, tab hoặc dòng mới nào ở giữa Triple Trích dẫn Triple Trích dẫn được coi là một phần của chuỗi. Quy tắc thụt của Python cho các khối không áp dụng cho các dòng bên trong chuỗi đa dòng.begins and ends with either three single quotes or three double quotes. Any quotes, tabs, or newlines in between the “triple quotes” are considered part of the string. Python's indentation rules for blocks do not apply to lines inside a multiline string.
Làm thế nào để bạn trích dẫn nhiều dòng trong Python?Nếu viết một văn bản trong một dòng sau đó sử dụng dấu ngoặc kép hoặc trích dẫn đơn trong Python. Nếu viết một bài thơ hoặc bài hát hoặc văn bản nhiều dòng thì hãy sử dụng Trích dẫn ba (Hồi giáo hoặc 'hoặc').triple quotes(“”” or ”').
Làm cách nào để tạo nhiều dòng trên một dòng trong Python?Để chuyển đổi một chuỗi đa dòng thành một dòng duy nhất:.. Sử dụng str.Phương thức Splitlines () để có được danh sách các dòng trong chuỗi .. Sử dụng str.Phương thức Dải () để loại bỏ khoảng trắng dẫn đầu và dấu vết từ mỗi dòng .. Sử dụng phương thức tham gia () để tham gia danh sách với bộ phân cách không gian .. Có bao nhiêu cách bạn có thể nhập một chuỗi đa dòng vào Python?Ba trích dẫn đơn, ba trích dẫn kép, giá đỡ và dấu gạch chéo ngược có thể được sử dụng để tạo chuỗi đa dòng. can be used to create multiline strings. |