با استفاده از تابع EXTRACTVALUE مقدار عنصر 'version' را از ستون xml_config جدول system_settings برای هر رکورد استخراج کنید.

2.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:29

0.0

برای حل مسئله از تابع EXTRACTVALUE(xml_fragment, xpath_expression) در MySQL استفاده کنید؛ به‌عنوان مثال می‌توانید کوئری‌ای مانند SELECT id, EXTRACTVALUE(xml_config, '/config/version') AS version FROM system_settings; اجرا کنید تا متن گره version از سند XML هر رکورد برگردد. توجه کنید که ستون xml_config باید متن XML معتبر داشته باشد، مسیر XPath را درست بنویسید (مثلاً '/config/version') و انتظار داشته باشید اگر گره وجود نداشته باشد مقدار NULL برگردد؛ برای فیلتر کردن رکوردها از WHERE یا برای حذف مقادیر تکراری از DISTINCT استفاده کنید.

توسط پژوهشگر در 221 روز قبل ساعت 01:29
دسته بندی ها: MySQL MySQL for beginner
arash در 221 روز قبل ساعت 13:06

این کوئری برای استخراج مقدار گره version از ستون xml_config در هر رکورد system_settings مناسب است. اما در MySQL 8.x تابع EXTRACTVALUE حذف شده، پس بهتر است به جای آن از XMLTABLE یا تبدیل XML به JSON استفاده کنید. اگر گره version وجود نداشته باشد، مقدار NULL برمی‌گردد و باید این حالت را در برنامه‌تان مدیریت کنید. EXTRACTVALUE تنها اولین نتیجه را برمی‌گرداند؛ برای دریافت همه مقادیر باید از راه‌حل‌های جایگزین مانند XMLTABLE استفاده کنید. همچنین مطمئن شوید مسیر XPath درست نوشته شده و XML معتبر است، و در صورت نیاز از DISTINCT یا فیلتر WHERE برای فیلتر یا حذف مقادیر تکراری استفاده کنید.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری