Tôi đang cố gắng băm chuỗi thành giá trị 64 bit (bigint) trong MySQL. Tôi biết về hàm MD5(), hàm này trả về băm 128 bit dưới dạng chuỗi nhị phân. Tôi muốn được hạnh phúc để chỉ mất 64 bit phía trên hoặc trên cùng của kết quả này. Tuy nhiên, tôi không thể tìm ra cách để có được từ một loại chuỗi nhị phân đến một kiểu số của bất kỳ loại nào. Bất kỳ con trỏ?Chuyển đổi chuỗi nhị phân thành bigint trong MySQL?
8
A
Trả lời
14
Sử dụng CONV()
chức năng để chuyển đổi các hash MD5 từ cơ sở 16 căn 10 và CAST
để chuyển đổi nó vào một số:
select cast(conv(substring(md5(id), 1, 16), 16, 10) as unsigned integer) from SomeTable;
2
CREATE FUNCTION dbo.HexStrToVarBinary(@hexstr varchar(8000))
RETURNS varbinary(8000)
AS
BEGIN
DECLARE @hex char(1), @i int, @place bigint, @a bigint
SET @i = LEN(@hexstr)
set @place = convert(bigint,1)
SET @a = convert(bigint, 0)
WHILE (@i > 0 AND (substring(@hexstr, @i, 1) like '[0-9A-Fa-f]'))
BEGIN
SET @hex = SUBSTRING(@hexstr, @i, 1)
SET @a = @a +
convert(bigint, CASE WHEN @hex LIKE '[0-9]'
THEN CAST(@hex as int)
ELSE CAST(ASCII(UPPER(@hex))-55 as int) end * @place)
set @place = @place * convert(bigint,16)
SET @i = @i - 1
END
RETURN convert(varbinary(8000),@a)
END
GO
+0
Nice! hy vọng có một cái gì đó được xây dựng trong. –
+0
Bây giờ cách khác xung quanh xin vui lòng: D: @ :) –
Các vấn đề liên quan
- 1. Chuyển đổi chuỗi thập lục phân thành chuỗi nhị phân
- 2. Chuyển đổi một byte thành chuỗi nhị phân trong C#
- 3. Chuyển đổi số thập phân thành nhị phân trong R?
- 4. Chuyển đổi chuỗi nhị phân thành số nguyên
- 5. SQL Server Chuyển đổi số nguyên thành chuỗi nhị phân
- 6. java: chuyển đổi chuỗi nhị phân thành int
- 7. Chuyển đổi tệp nhị phân thành chuỗi Base64
- 8. Chuyển đổi chuỗi nhị phân thành mảng byte
- 9. Cách nhanh nhất để chuyển đổi chuỗi thành nhị phân?
- 10. Chuyển đổi Pythonic thành nhị phân?
- 11. Chuyển đổi hình ảnh thành nhị phân?
- 12. Làm thế nào để chuyển đổi IPv6 từ nhị phân để lưu trữ trong MySQL
- 13. Chuyển đổi chuỗi thập lục phân (hex) thành một chuỗi nhị phân
- 14. Làm thế nào để chuyển đổi 'chuỗi nhị phân' thành chuỗi bình thường trong Python3?
- 15. Làm thế nào để bạn chuyển đổi một chuỗi thành ascii thành nhị phân trong C#?
- 16. Chuyển đổi từ nhị phân thành char trong C
- 17. Chuyển đổi dữ liệu nhị phân thành base64 bằng javascript
- 18. Chuyển đổi chuỗi số không nhị phân và những
- 19. Chuyển đổi một chuỗi nhị phân lớn để Hexadecimal
- 20. Chuỗi nhị phân thành số nguyên
- 21. Chuyển đổi chuỗi đại diện của số nhị phân thành int trong C#
- 22. Làm cách nào để chuyển đổi chuỗi nhị phân thành một số trong Perl?
- 23. Chuyển đổi chuỗi định dạng nhị phân thành int, trong C
- 24. Làm thế nào để chuyển đổi một chuỗi hoặc số nguyên thành nhị phân trong Ruby?
- 25. Chuyển đổi một int thành một biểu diễn chuỗi nhị phân trong Java?
- 26. Chuyển đổi từ UniqueIdentifier thành BigInt và Back?
- 27. Chuỗi thành byte/mảng nhị phân trong PHP
- 28. chuyển đổi giá trị kép thành giá trị nhị phân
- 29. Chuyển đổi dữ liệu hàng thành cột nhị phân
- 30. Chuyển đổi tệp nhị phân thành hình ảnh
Tốt, đó là những gì tôi đang tìm kiếm. Tôi nghĩ rằng tôi không cần dàn diễn viên, hoặc muốn chuyển sang bigint, nhưng hàm conv() thực sự là những gì tôi đã bỏ lỡ. –
Một lưu ý cuối cùng. Sau đó tôi đã truy cập vào giá trị số này như là một Java dài. Các kiểu số nguyên Java được ký, và kết quả của conv() luôn luôn là dương, có nghĩa là nó tràn trong một số trường hợp. Đối với những người sử dụng này như là một ký dài, bạn cần các diễn viên, và đúc để 'ký' làm các trick. –