ציטוט:
נכתב במקור על ידי RS324
יש דרך טיפה יותר טובה
אם אתה שומר STRING של ID פשוט תפריד בניהם עם ,(פסיק)
ואז בשאילת תחפש WHERE FIND_IN_SET
וזה יימצא לך בדיוק מה שאתה מחפש....
|
ניסיתי לעשות את השיאלתה הזאת:
קוד:
"SELECT * FROM TST WHERE FIND_IN_SET(ContIds, '1,2,3,4,5,6,7,8,9,10,11,12')"
יש לי בטבלה 2 שורות:
1. 1,2,4,7,8,3,11,
2. 1,2,3,4,7,5,6,10,8,9,11,12,
וזה לא הציג לי כלום, יש מצב שלא עשיתי נכון את השאילתה?
ראיתי בתיעוד של mySQL שזה מחפש רק בעמודות מסוג SET אבל אני לא מצליח להחליף את ה-TEXT ל-SET כשהערכים האלה נמצאים שם..
עריכה:
גם כשהחלפתי ל-SET בשביל לבדוק
קוד:
set('1','2','3','4','5','6','7','8','9','10','11','12','13','14')
והשורות עכשיו הן
1. 1,3,5,7
2. 1,2,3,4,5,6,7,8,9,10,11,12,13,14
זה עדיין לא עובד לי, גם כשאני מציין בדיוק את הערכים של שורה 1
עוד עריכה:
אם זה יעזור, אני צריך נגיד דרך להשתמש ב-LIKE אבל הפוך, כלומר משהו כזה:
קוד:
WHERE '|1||2||3||4||5||6||7||8||9|' LIKE '%ContIDs%'
כשה-ContIDs יהיה מופרד, נגיד הוא מכיל 1,3,5 אז זה יצא משהו כזה:
קוד:
WHERE '|1||2||3||4||5||6||7||8||9|' LIKE '%|1|%' AND LIKE '%|3|%' AND LIKE '%|5|%'