Tôi nhớ đọc về trích dẫn nội dung khi thực hiện truy vấn SQL và khi bạn trích dẫn nội dung nào đó, nó sẽ trở thành một chuỗi. Tôi cũng đọc những con số đó không nên được trích dẫn. Bây giờ, tôi không thể tìm thấy báo giá đó và tôi cần phải làm mới bộ nhớ của mình để xem liệu tôi có nên trích dẫn số liệu hay không.Tôi có nên trích dẫn các số trong SQL không?
Trả lời
Bạn không được báo giá số.
Bạn chính xác bằng cách nhớ rằng nó biến chuỗi thành chuỗi.
SELECT 10 AS x
là hoàn toàn hợp pháp và sẽ trở lại (trong hầu hết các cơ sở dữ liệu) một cột kiểu dữ liệu int (hoặc một biến thể đó.)
tôi nhận thấy những nhận xét cho câu hỏi của bạn bằng cách Adam, và tôi muốn để đưa ra nhận xét về điều đó, nhưng tôi sẽ chỉnh sửa câu trả lời này bởi vì tôi nghĩ đó là một điểm quan trọng.
Trích dẫn "số" trong SQL thường được thực hiện khi nó không phải là thực sự là một số, nhưng thay vào đó một đang.
Bằng số Tôi có nghĩa là một số thứ bạn có thể đếm, tổng hợp, tính bằng, mã là số nhận dạng.
Vì vậy, SSN là mã, đó là mã duy nhất của bạn (tôi biết, chữ N viết tắt là "số", bit của từ sai nếu bạn hỏi tôi), nhưng bạn sẽ không tính giá trị trung bình của tất cả SSN trong cơ sở dữ liệu.
Nếu bạn lưu trữ ID sản phẩm trong cơ sở dữ liệu dưới dạng chuỗi, nhưng trên thực tế chúng chỉ được tạo thành từ các chữ số, sau đó chúng là mã, chứ không phải số.
Mã nên được trích dẫn, số không nên.
Tôi không biết những gì bạn có thể đã đọc, nhưng không báo giá số.
Dưới đây là một ví dụ, nơi trích dẫn sẽ tạo ra kết quả không phù hợp (trong MySQL):
select 1 < 1.0; // returns 0
select '1' < '1.0'; // returns 1
Đó là bởi vì sự so sánh thứ hai được thực hiện bằng cách sử dụng chuỗi đối chiếu hiện tại chứ không phải số lượng.
Không nên trích dẫn số, vì đó sẽ là một bước không cần thiết bổ sung để cơ sở dữ liệu chuyển đổi chuỗi ký tự thành một giá trị số để so sánh và có thể thay đổi ý nghĩa của so sánh.
eh ... không bạn không nên?
tôi giả sử bạn có nghĩa là bằng cách trích dẫn kèm theo trong 'like 'this'
INSERT INTO table (foo) VALUES (999);
là hoàn toàn hợp pháp miễn là foo là một kiểu INT collumn INSERT INTO table (foo) VALUES('foo');
Chèn chuỗi foo vào bảng. Bạn không thể làm điều này trên các bảng kiểu INT của khóa học.
Rõ ràng, đừng quên kiểm tra để đảm bảo rằng bất kỳ giá trị nào bạn đã vượt qua thực sự là một con số.
Vâng, có nguy cơ cháy ngọn lửa, tôi có thể kính trọng không đồng ý một chút ở đây rằng KHÔNG BAO GIỜ có thể sử dụng dấu nháy đơn xung quanh một giá trị số không?Dường như với tôi rằng nó SOMETIMES có ý nghĩa để sử dụng dấu nháy đơn xung quanh một giá trị số. Nếu col1 là một cột INT, sau đó (sử dụng VBScript là một ví dụ)
sql = "INSERT " & foo & " INTO col1 WHERE ID = 1"
và
sql = "INSERT '" & foo & "' INTO col1 WHERE ID = 1"
sẽ CẢ, khi sql được thực thi, chèn thêm bất kỳ giá trị số nguyên của foo một cách chính xác. Nhưng nếu bạn muốn 0 được chèn vào khi foo không được khởi tạo? Sử dụng biểu thức số được trích dẫn như thế này sẽ ngăn lỗi và xử lý trường hợp rỗng. Cho dù bạn có nghĩ đây là thực hành tốt hay không, điều đó chắc chắn đúng.
- 1. Trích dẫn các số nguyên
- 2. Các số JSON có thể được trích dẫn không?
- 3. Định dạng đúng trong JSON, tôi có nên trích dẫn tên không?
- 4. Trong Java, tôi có nên thoát khỏi dấu nháy đơn (') trong chuỗi (được trích dẫn kép) không?
- 5. Ký tự trích dẫn T-SQL
- 6. Trích dẫn đơn hoặc trích dẫn kép trong javascript
- 7. Tạo tham số F # trích dẫn
- 8. Không thả số không trong chuỗi chưa được trích dẫn làm đối số
- 9. Làm thế nào tôi có thể trích dẫn một chuỗi dài trong Perl?
- 10. Trích dẫn nội dòng của Nhà phát triển SQL
- 11. Tôi có thể sử dụng một trích dẫn đơn trong chuỗi 'Powershell' không?
- 12. Trích dẫn vs không trích dẫn biến trên RHS của biến phân
- 13. Tôi có nên sử dụng LingPipe hoặc NLTK để trích xuất tên và địa điểm không?
- 14. trích dẫn hằng số trong php: "đây là một MY_CONSTANT"
- 15. Trích dẫn tự động trích dẫn từ với Doctrine 2
- 16. Lệnh gọi xử lý con Python với các đối số có nhiều trích dẫn
- 17. Cách trích dẫn "* /" trong JavaDocs
- 18. Tôi có nên sử dụng các giao dịch SQL, trong khi đọc các bản ghi?
- 19. Trích xuất chuỗi từ giữa các trích dẫn
- 20. Xóa trích dẫn từ các biến môi trường có tên trong các tập lệnh Windows
- 21. Tôi có nên thoát khỏi các đối số vỏ trong Perl không?
- 22. Máy chủ SQL - Có cách nào dễ dàng bỏ qua các trích dẫn khi tìm kiếm không?
- 23. Làm thế nào để trích xuất số tuần trong sql
- 24. Thay thế Trích dẫn bằng Escape và Trích dẫn
- 25. Trích dẫn các chuỗi dài không có dòng mới trong Python
- 26. Các trích dẫn đơn có hợp pháp trong phần tên của địa chỉ email không?
- 27. Tránh trích dẫn trong CMake add_custom_command
- 28. LaTeX: Trích dẫn, nhưng không tham chiếu
- 29. Tôi có thể subscript một biến mảng bên trong một chuỗi kép trích dẫn PHP?
- 30. SQL Server 2008: tôi có nên sử dụng auth Windows hoặc auth SQL Server không?
Phụ thuộc vào cách giá trị được lưu trữ trong db. Nếu được lưu dưới dạng văn bản, hãy trích dẫn nó, nếu được lưu dưới dạng số không :-) – bernie
Đó không phải là số, đó là mã. Giống như ID sản phẩm hoặc tương tự. Một số là thứ bạn sử dụng để tính toán. Một số không nên được trích dẫn vì một số không bao giờ được lưu trữ trong cơ sở dữ liệu dưới dạng chuỗi. –
@Một người nào đó bạn có một nguồn cho định nghĩa của bạn rằng một ID bao gồm các chữ số không phải là một số và do đó nên được trích dẫn? Và nếu đó là một ID tương ứng với các hàng trong một bảng như 1 cho row1 e.t.c thì sao? – barlop