569
צפיות
צפיות
5
תשובות
תשובות
שאלת sql
שלום,
אני צריך לדעת איך אני יכול למצוא ב-sql האם שדה מסויים מכיל ערך מסויים.
כמו שימוש ב-IN אבל הפוך:
sql = "select id from tblname where fld1 contains " & value
האם יש דבר כזה contains ?
שלום,
אני צריך לדעת איך אני יכול למצוא ב-sql האם שדה מסויים מכיל ערך מסויים.
כמו שימוש ב-IN אבל הפוך:
sql = "select id from tblname where fld1 contains " & value
האם יש דבר כזה contains ?
5 תשובות
אני לא חושב שהצלחתי להבין את השאלה.
כלומר, אתה יכול לבדוק האם ערך של שדה מסויים שווה לערך כלשהו –
sqlStr = "SELECT intId FROM tableName WEHRE columnName = "& value
או האם שדה טקסט מכיל טקסט כשלהו –
sqlStr = "SELECT intId FROM tableName WEHRE txtColumnName LIKE '%"& value &"%'"
אבל אני עדיין לא מבין את הקשר ל "כמו שימוש ב-IN אבל הפוך"…
אני אסביר
יש משפט sql כזה:
sql = "select id from tblname where fld1 IN (" & fld2 & ")"
ואז הוא מוצא האם fld1 מוכל בתוך fld2 כאשר לדוגמא fld1=1 ו-fld2=1, 2.
מה שאני רוצה זה לדעת זה להפך: האם fld1 מכיל את fld2 כאשר כאן fld1=1, 2 ו-fld2 = 1.
אני מקווה שהסברתי את עצמי יותר טוב ותודה על התגובה המהירה.
אממ….
כלומר שבדוגמא שלך fld1 יכיל רשימת ערכים מופרדים ע"י פסיקים ואילו fld2 יכיל ערך בודד?
אז מה הבעיה לבדוק אם fld2 IN fld1?
הבעיה היה
שיש לי טבלה שיש לה שדה fld שמכיל 1, 2,3.
אני שולח פרמטר וצריך לבדוק האם השדה הזה מכיל אותו.
לדוגמא: שלחתי 2.
אני רוצה לקבל את כל השורות שהשדה שלהן fld מכיל 2 (כאשר השדה fld הוא מסוג טקסט ומכיל מספרים עם פסיקים (בחירה מרובה)).
אני כמובן יכול לעבור על כל הרשומות ולעשות השוואה עם instr אבל אני רוצה לחסוך משאבים.
אז אתה צריך להשתמש ב LIKE….
value = "," & Requset("value") & ","
sqlStr = "SELECT fld FROM tbl WHERE fld LIKE '%"& value &"%'"
שים לב ששאילתה כזו תחזיר לך גם מספרים דו ספרתיים שמכילים את הספרה שאתה מחפש – אם אתה מחפש 2, היא תחזיר לך גם 22. לכן אתה צריך לשרשר ל value פסיק לפני ופסיק אחרי המספר, בדיוק כמו שכתוב מעל השאילתה.