با استفاده از تابع RANDOM_BYTES در MySQL، یک کوئری بنویسید که 10 مقدار تصادفی 8 بایتی تولید کرده و آنها را به صورت رشتههای هگزادسیمال نمایش دهد.
2.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 03:04 0.0
برای حل این مسئله میتوانید از تابع RANDOM_BYTES(n) برای تولید بایتهای تصادفی و تابع HEX() برای تبدیل باینری به نمایش هگزادسیمال استفاده کنید. چون نیاز به تولید چند ردیف داریم، یک روش ساده در MySQL 8+ استفاده از CTE بازگشتی است: ابتدا یک دنباله 1..10 تولید کنید و سپس برای هر ردیف HEX(RANDOM_BYTES(8)) انتخاب کنید. نکتهها: MySQL 8+ برای WITH RECURSIVE و RANDOM_BYTES توصیه میشود و رشته هگزادسیمال تولیدشده برای 8 بایت، طول 16 کاراکتر خواهد داشت.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
نکته مفید: RANDOM_BYTES(8) هر ردیف 8 بایت تصادفی تولید میکند و HEX() آن را به رشته هگزادسیمال تبدیل میکند که طولش برای 8 بایت برابر با 16 کاراکتر است. برای تولید 10 مقدار، میتوانید از WITH RECURSIVE استفاده کنید تا یک دنباله 1..10 بسازید و سپس HEX(RANDOM_BYTES(8)) را انتخاب کنید. توجه کنید که این روش به MySQL 8+ نیاز دارد و خروجی معمولاً به صورت حروف بزرگ است. اگر به کارایی بیشتر نیاز دارید، میتوانید خروجی را در نما یا کش موقتی نگه دارید.
گزارش