Có tiêu chuẩn SQL nào để thoát khỏi tên cột không? Nếu không phải những gì làm việc cho mysql và sqlite? hiện nó cũng làm việc cho sqlserver?Tiêu chuẩn SQL để thoát khỏi các tên cột?
Trả lời
Đối với MySQL, hãy sử dụng bọ ve `.
Ví dụ:
SELECT `column`, `column2` FROM `table`
Đối với MS SQL sử dụng [và]
SELECT [COLUMN], [COLUMN 2] FROM [TABLE]
SQL-99 tiêu chuẩn specifies rằng kép (") được sử dụng để phân định danh
. Oracle, PostgreSQL, MySQL, MSSQL và SQlite tất cả hỗ trợ "làm dấu phân cách định danh (mặc dù chúng không sử dụng" làm 'mặc định' - ví dụ, bạn phải chạy MySQL trong ANSI mode và SQL Server chỉ hỗ trợ nó khi QUOTED_IDENTIFIER
là ON
.)
Theo SQLite,
'foo'
là một chuỗi SQL"foo"
là một định danh SQL (cột/bảng/etc)[foo]
là số nhận dạng trong MS SQL`foo`
là số nhận dạng trong MySQL
Đối với tên tiêu chuẩn, cú pháp là: "t"."foo"
hay [t].[foo]
vv
MySQL hỗ trợ chuẩn "foo" khi tùy chọn ANSI_QUOTES
được kích hoạt.
Lưu ý rằng SQLite cho phép ''foo'' được hiểu là mã định danh nếu ngữ cảnh không cho phép chuỗi và' "foo" 'được hiểu là chuỗi nếu ngữ cảnh không cho phép mã định danh, mặc dù là một lưu ý rằng hành vi này có thể bị xóa trong các phiên bản sau. – thomasrutter
Vì vậy, làm thế nào để bạn làm "t". *? – Loenix
@thomasrutter Yeah Tôi hoàn toàn bị cắn bởi hành vi này ... Cố gắng sử dụng "WHERE" nonexistent_column "= 0' và sqlite vui vẻ thực thi nó giả vờ rằng' 'nonexistent_column" 'của tôi là một chuỗi. Hoàn toàn đủ điều kiện tên là "" my_table "." Nonexistent_column "' buộc sqlite phải hành xử nghiêm chỉnh hơn. – Rufflewind
Đối dBASE/DBF sử dụng [
và ]
SELECT [DATE], [TIME], [ANY_OTHER_TO_BE_ESCAPED_COLUMN] FROM [TABLE]
- 1. Tiêu chuẩn mã thoát trong Python
- 2. UPSERT tiêu chuẩn SQL gọi
- 3. Làm cách nào để thoát khỏi các dấu nháy đơn và kép trong câu lệnh SQL đã chuẩn bị?
- 4. Cột LINQ to SQL có từ khóa làm tên cột, cách báo giá/thoát
- 5. Có thể xóa lệnh khỏi Tiêu chuẩn Hibernate không?
- 6. Áp dụng các tiêu chuẩn SQL cho tập lệnh
- 7. jqGrid loại bỏ các tiêu đề cột khỏi lưới con
- 8. Tên tiêu chuẩn cho các trường nhập HTML
- 9. Tiêu chuẩn Hibernate Api hoàn toàn bảo vệ khỏi SQL Injection
- 10. chọn "tất cả các cột" với "nhóm theo" trong truy vấn tiêu chuẩn ngủ đông
- 11. SQL Duplicate tên cột lỗi
- 12. Cách thoát khỏi các truy vấn SQL đơn giản trong C# cho SqlServer
- 13. Tiêu chuẩn SQL nói gì về việc sử dụng backtick (`)?
- 14. Cách tiêu chuẩn để đổi tên dự án xcode
- 15. Xóa phần tử khỏi phần giữa của tiêu chuẩn :: heap
- 16. Weka chuẩn hóa các cột
- 17. SQL Injection thông qua Hibernate-Tiêu chuẩn & Session.save (object)
- 18. Xóa ký tự khỏi chuỗi trong tiêu chuẩn C
- 19. Thực hiện một tiêu chuẩn đặt tên cho các phím, các chỉ số, hạn chế
- 20. Tài liệu tiêu chuẩn
- 21. Các cột SQL được tham số hóa?
- 22. Sử dụng tiêu chí ngủ đông, có cách nào để thoát khỏi các ký tự đặc biệt không?
- 23. Cần thiết để thoát khỏi HandlerThread?
- 24. cách thoát khỏi các thực thể html trong lưới?
- 25. gdb: thoát khỏi chương trình mà không thoát khỏi gdb
- 26. SQL - loại trừ một cột khỏi truy vấn SELECT
- 27. Thoát khỏi tất cả các phiên
- 28. Kéo các tên cột vào Excel từ truy vấn SQL
- 29. Các truy vấn mysql động có thoát sql cũng an toàn như các câu lệnh đã chuẩn bị chưa?
- 30. Cách thoát khỏi Cfoutput
bạn có thể có khoảng trống trong tên cột với ms sql!?! –
bạn có thể! Tôi sẽ không, mặc dù. – JMP
Có, bạn có thể có dấu cách hoặc các từ dành riêng làm tên thực thể trong MSSQL. Bạn chỉ cần [] chúng. – BoltBait