با استفاده از تابع EXTRACTVALUE در MySQL یک عبارت SELECT بنویسید که مقدار عنصر price را از ستون xml_data جدول products برای رکوردی با id = 5 استخراج کند.
13.0 بازدید آخرین ویرایش در 198 روز قبل ساعت 01:40 0.0
برای حل این مسئله از تابع EXTRACTVALUE(xml_column, 'XPath') استفاده کنید؛ مثلاً SELECT EXTRACTVALUE(xml_data, '/product/price') AS price FROM products WHERE id = 5; مسیر XPath را بر اساس ساختار XML تنظیم کنید و توجه داشته باشید که EXTRACTVALUE مقدار اولین تطابق را به صورت رشته برمیگرداند. در صورتی که ستون XML به صورت متن ذخیره شده باشد یا مقدار NULL وجود داشته باشد، ممکن است نیاز به CAST یا بررسی NULL داشته باشید و همچنین در نسخههای جدید MySQL این تابع منسوخ شده است، بنابراین در صورت نیاز از روشهای جایگزینِ پردازش XML استفاده کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
توجه کنید که EXTRACTVALUE مقدار اولین تطابق XPath را بهصورت رشته برمیگرداند و برای محاسبات عددی باید آن را به نوع عددی مناسب CAST کنید؛ همچنین اگر ستون xml_data NULL یا متن خالی باشد قبل از فراخوانی تابع آن را بررسی کنید. این تابع در نسخههای جدید MySQL منسوخ یا حذف شده است، پس در صورت استفاده از MySQL 8+ بهتر است پردازش XML را در لایهٔ برنامه انجام دهید یا ساختار را به JSON تبدیل کنید. مسیر XPath را دقیقاً بر اساس ساختار XML تنظیم کنید (مثلاً /product/price) تا نتیجهٔ صحیح بگیرید.
گزارش