הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   בעיה ב MySQL (https://hosts.co.il/forums/showthread.php?t=89508)

Shay-A 12-05-11 10:41

בעיה ב MySQL
 
יש לי בעיה מוזרה מאוד בSQL,
כאשר אני מריץ את השאילתה:
קוד:

SELECT * FROM blah ORDER BY 'column' DESC LIMIT 0,10
זה לא מחזיר לי תוצאות שמסודרות לפי הקריטריונים שקבעתי, אלא מחזיר לי נתונים כאילו השאילתה הייתה:
קוד:

SELECT * FROM blah
זה באמת מוזר...
מישהו נתקל בבעיה הזו פעם?

Shay Ben Moshe 12-05-11 11:03

תוריד את הגרש מסביב לcolumn. אם אתה רוצה לשים גרש זה גרש מהסוג ` ולא ' כאשר מדובר על שמות כגון שם דאטאבייס, טבלה, עמודה וכיוב'.

Shay-A 12-05-11 13:58

שאני מוריד את הגרש השאילתה בכלל לא עובדת...

Shay Ben Moshe 12-05-11 14:17

כי אתה לא יכול לקרוא לעמודה column בלי לציין שזה באמת השם שלה (זה שם שמור), ולכן תוסיף ` לפני ואחרי...

IgalSt 12-05-11 14:23

ציטוט:

נכתב במקור על ידי Shay Falador (פרסם 804104)
כי אתה לא יכול לקרוא לעמודה column בלי לציין שזה באמת השם שלה (זה שם שמור), ולכן תוסיף ` לפני ואחרי...

הכוונה של שי היא לשאילתה כזאת:
קוד:

SELECT * FROM blah ORDER BY `column` DESC LIMIT 0,10
המילה column הינה מילה שמורה בשפה ולכן אתה חייב להשתמש בגרש הזה (בד"כ הוא נמצא במקש שמשמאל ל-1 שמעל לאותיות) על מנת להסביר ל-mysql שאתה לא מתכוון למילה השמורה אלא לשם של DB, טבלה או עמודה (בהתאם למיקום בשאילתה).

נ.ב:
אני מניח שהשם של הטבלה שלך אינו blah אלא משהו אחר ופשוט החלפת לפני המשלוח של השאלה. ייתכן ומדובר במילה שמורה גם? בכל מקרה כדי ללכת על בטוח בזמן שאתה מדאבג את השאילתות שלך מומלץ לעטוף את שמות בסיסי הנתונים, הטבלאות והעמודות (וגם האינדקסים וכו') בגרש ` אם אתה לא בטוח לגבי השם.

Shay-A 12-05-11 21:15

השם הזה היה רק לדוגמא :)
הבעיה עדיין לא נפתרה...

Shay Ben Moshe 12-05-11 22:09

אולי תציג את השאילתה האמיתית? או לפחות את השגיאה שחוזרת?


כל הזמנים הם GMT +2. הזמן כעת הוא 22:47.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ