Trong khi kiểm tra ra PostgreSQL's md5()
function tôi nhận thấy hành vi rất kỳ lạ:md5() làm việc với nghĩa đen, nhưng không phải với dữ liệu cột
trình như mong đợi
SELECT md5('abc')
--"900150983cd24fb0d6963f7d28e17f72"
Nhưng sử dụng md5() chức năng trong một truy vấn:
SELECT request_id, md5(request_id)
FROM Request
ORDER BY request_id
kết quả trong lỗi này:
ERROR: function md5(integer) does not exist
LINE 1: SELECT request_id, md5(request_id)
^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
********** Error **********
ERROR: function md5(integer) does not exist
SQL state: 42883
Hint: No function matches the given name and argument types. You might need to add explicit type casts.
Character: 20
Cách chức năng không tồn tại nếu nó hoạt động trong truy vấn đầu tiên? Tôi đang làm gì sai; cách chính xác để sử dụng md5()
trong truy vấn SELECT là gì?
Điều đó dường như không kỳ quái chút nào. Trong truy vấn đầu tiên, bạn đã chuyển văn bản, trong khi trong lần truy vấn thứ hai bạn đang cố chuyển số nguyên. – us2012
@ us2012: yup, đó là sự khác biệt. –
Nói chung nó không có ý nghĩa nhiều để lấy md5 của một số nguyên, vì vậy tôi muốn được quan tâm đến lý do tại sao bạn đang cố gắng để làm điều này. –