آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

سرچ در دیتابیس MySQL ?

javac  12 سال پیش  12 سال پیش
+3 0

من یک جدول دارم بدین شکل:

tags text id
آموزش , اطلاعات عمومی , علمی متن تستی 1

که توی فیلد tags چند مقدار وجود داره که با کاما از هم جدا شدن

میخوام وقتی وارد یک دسته شدم توی برنامه مثلا مطلب آموزشی ، رکوردهایی از جدول که دارای تگ آموزش هستندرو نشون بده.

چطور این query رو انجام بدم؟

 

 برای این سوال 4 پاسخ وجود دارد.
پاسخ به سوال 
javac  12 سال پیش
0 0

با سرچی که توی نت کردم به این نتایج رسیدم البته قبلا alu هم گفته بود اما نمیدونم چرا حواسم نبود!! :)

روش اول :

 WHERE tags LIKE '%myTag%'

روش دوم: 

 SELECT * FROM mytable WHERE FIND_IN_SET(' عاشقانه', CONCAT(' ', tags)) > 0;
+1 0
javac عزیز ، شما روش رو گفتید ، اما موضوع مهمتر اینه که جدول شما نرمال نیست ، حتی در سطح اول (12 سال پیش)
0 0
چرا نرمال نیست؟ اصلا نرمال سازی چیه؟ و چطور باید نرمالش کنم ؟ (12 سال پیش)
پاسخ به سوال 
مجتبی یگانه  12 سال پیش
+11 0

http://answers.uncocoder.com/question/1131

نرمال سازی معمولا برای برنامه نویس کار رو یکم زمانبر تر میکنه (شاید یک ساعت بیشتر) ولی سرعت برنامه برای کار با دیتابیس بالاتر میره 

نرمال سازی در سطح یک میشه این "هیچ سلولی قابل تجزیه با سلول های دیگر نباشد"

که در مورد شما هست ، یعنی تگ خودش از چند مورد تشکیل شده مثلا این جدول هم نرمال نیست 

name id
mojtaba yeganeh 1

شکل نرمال شده میشه این 

lastname name id
yeganeh mojtaba 1

رعایت کردن این موارد بسیار کار را راحت تر میکنه ، هرچند برای شروعش یکم زمانبر هست ، مثلا تو مورد شما باید 3 تا جدول بسازید یکی محتوا ، یکی Tags , یکی رابط

جدول اول

text id
my text 1

حالا یه جدول واسه ذخیره ی تگ ها نیاز دارید ، الان خوبیش اینه که هر وقت نیاز بود میتونید هزار تگ اضافه کنید

tag id
tutorial 1

حالا یه جدول رابط نیاز دارید نشون بده کدوم آیدی در جدول محتوا ، به کدوم ( ها ) در جدول tag مرتبط هست ، در واقع یک نشانگر عددی به جای پردازش متن که بسیار زمانگیر هست

tag_id text_id id
1 1 1

یعنی متنی که ایدی یک داره ، به تگی که ایدیش یکه وصله ، حالا ممکنه متن شما 100 تا تگ داشته باشه ، مهم نیست ، فقط جدول رابط ثبتشون میکنه  ، توضیحات بیشتر تو لینک ، اونم توضیحات خودمه + چند تا سایت ، برای توضیح سطوح بالا تر :| 

0 0
خیلی عالی بود دیدم فقط vote کافی نیست  :))) باید تشکر ویژه کنم ازتون (12 سال پیش)
0 0
فدات :) (12 سال پیش)
0 0
دوستان برای بیش از یک جدول باید چطور سرچ کنیم مثلا table1وtable2 (12 سال پیش)
0 0
باید با یک کوئری ، یک دستور ادغامی اجرا کرد ، دستورات join را سرچ کنید ، فارسی هم منابع خیلی خوب هست (12 سال پیش)
پاسخ به سوال 
Denabit  12 سال پیش
0 0

ممنون بابت راهنماییتون

هر کاری کردم نشد

برای یک جدول کد پایینی رو نوشم

هر دوتا جدول fav دارن میخوام هر سطر از دوتا جدول که fav اون برابر 1باشه رو برام نمایش بده

 query = "SELECT * FROM table1 WHERE (fav=1)";
پاسخ به سوال 
مجتبی یگانه  12 سال پیش
+3 0

این نوع کوئری میتونه کمکتون کنه

SELECT Table1.Column1 , Table2.Column1 [,Table3.Column1 ...]
FROM Table1,Table2 [,Table3.Column1 ...]
WHERE Table1.Column1==Table2.Column1 [AND OR ... other Conditions]

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .