שאלה ב MySql

eytanchen

New member
שאלה ב MySql

האם יש דרך ב MySql להריץ שאילתה שתסנן סדות מסויימים בתוצאה? הכוונה היא לא לבחור שדות ספציפיים בשאילתה, אלא לבחור הכל מלבד שדה אחד או שניים (מדובר בטבלה גדולה, שמכילה שדות תמונה כ BLOB, ואני לא מעוניין להאיט את השאילתה עם התמונות כשאין צורך בהן. במקום לרשום את כל שמות השדות שאני מעוניין בהם מלבד השדה המדובר, אני רוצה לציין שיבחר הכל חוץ מהשדה של ה BLOB)
 

tamirvs

New member
הנה

תנסה לעשות WHERE ובמקום = לעשות =! יענו כל מה שלא שווה ל.... זה אמור לעבוד
 

eytanchen

New member
לא זו היתה השאלה

זה לא מה שהתכוונתי. ה WHERE מגביל לך את השורות אותן השאילתה תחזיר. אני מעוניין להגביל את מספר השדות בשורות שהשאילתה תחזיר. זה משהו אחר, וזה לא קשור ל WHERE.
 

tamirvs

New member
לא ניסיתי, אבל...

אחרי שאתה מקבל את התוצאה כ array אתה יכול להשתמש ב while כך:
while($query != number) { $result = $query['id']; }​
לא ניסיתי אבל זה משהו בסגנון...
 

CipherDon

New member
עצה בחינם

כתיבת משפט SQL עם הסימון * (לשליפת כל השדות בטבלה) - מבוצע באופן יותר איטי ביחס למשפט אשר מכיל את כל השדות הנחוצים. למה? מכיוון שהמחשב מבצע כביכול שתי שאילתות - האחת שולפת את כל שמות השדות בטבלה (*), והשניה מבצעת את השאילתא המקורית אותה התכנת ביקש. נכון, לא תמיד זה מורגש, ובשליפה מטבלאות קטנות מדובר בהפרש של כמה מיקרו-שניות, אבל המקצוענים מבינכם צריכים לאמץ לעצמם את דרך המחשבה הזאת ולחשוב כל הזמן על ניהול נכון של משאבי המחשב ולא על המשאבים שלכם..
 

WebKiller

New member
נכון, אבל יש פיתרון

שרוצים שאילתה מהירה יותר אז מגדירים אינדקסים לטבלה, ואם אתה רוצה לבחור רק שדות ספציפים ולא את כולם (*) אתה צריך לכתוב את שמות השדות שאתה רוצה ולהפירדם בפסיקים, כמו
select 'name','location' from table1 where id='1';​
 

theG

New member
אין דרך לבצע את מה שאתה מבקש

(ככל הידוע לי) אתה צריך לרשום את שמות השדות המבוקשים, או הכל. גיא
 

CipherDon

New member
זה בדיוק הפתרון...

זה לא שאין דרך לבצע זאת - שליפת שמות השדות המדוייקים, עם פסיקים בינהם זה בדיוק הפתרון לבעיה. דוגמה
SELECT users.user_name, users.user_phone, users.user_mail FROM dbo.users;​
 

theG

New member
בעיה בהבנת הנקרא (שלי)

או בהסברת המוקרא (שלך)
 
למעלה