امشب داشتم یک سلکتباکس با قابلیت سرچ رو مینوشتم که روی 3 تا ستون از یک جدول سرچ میزد
ستون های
چالشی که اینجا وجود داشت این بود که احتمال null بودن هر یک از این ستون ها وجود داشت و من توی خروجی نمیتونستم به قطعیت بگم که کدوم فیلد رو باید به عنوان label برای اون سلکتباکس نشون بدم
بعد از کمی سرچ زدن به یه تابع ساده و کاربردی توی MySQL رسیدم به نام COALESCE که خیلی ساده میتونید از بین n تا ستون؛ اولین ستونی که مقدار داره رو برگردونید
پس به این صورت ازش استفاده کردم
🎉 #Query #MySQL #Eloquent #Trick
✨ @PanicDev
ستون های
mobile, email, username و لازم بود که زمانی که ادمین داره سرچ میزنه؛ اولین ستونی که مقدار دهی شده بود به عنوان خروجی به صورت key, value برگشت داده بشهچالشی که اینجا وجود داشت این بود که احتمال null بودن هر یک از این ستون ها وجود داشت و من توی خروجی نمیتونستم به قطعیت بگم که کدوم فیلد رو باید به عنوان label برای اون سلکتباکس نشون بدم
بعد از کمی سرچ زدن به یه تابع ساده و کاربردی توی MySQL رسیدم به نام COALESCE که خیلی ساده میتونید از بین n تا ستون؛ اولین ستونی که مقدار داره رو برگردونید
پس به این صورت ازش استفاده کردم
user()قطعه کد بالا توی جدول
->selectRaw("COALESCE(mobile, email, username) as contact, id")
->where('mobile', 'like', "%$search%")
->orWhere('email', 'like', "%$search%")
->orWhere('username', 'like', "%$search%")
->limit(10)
->get()
->pluck('contact', 'id')
users روی سه ستون mobile و email و username سرچ میزنه و به ترتیب اولین ستونی که مقدار داشته باشه رو به عنوان contact بهمون برمیگردونه🎉 #Query #MySQL #Eloquent #Trick
✨ @PanicDev
GeeksforGeeks
MySQL COALESCE() Function
A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.
👍20❤4