Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Gdy uzyje w zapytaniu ORDER BY, znika jedno pole
Forum PHP.pl > Forum > Bazy danych > MySQL
intol
Witam. Wywołuję w mySQL zapytanie:

  1. SELECT a.id AS id, SUBSTR(a.`content`,1,20) AS `content`, a.topic AS topic FROM articles a, votings v WHERE v.parent_type='articles' AND v.type IN ('proposition','popularity') AND v.parent_id=a.id ORDER BY a.`value` DESC LIMIT 0, 5


Jako wynik dostaję prawidłową tabelę z id i topic, ale pole content jest zawsze puste. Problem znika, gdy usuwam z kwarendy ORDER BY a.`value` DESC.

Może jakiś pomysł dlaczego tak się dzieje i jak tego uniknąć?
Adiasz
a przypadkiem nie jest tak ze pierwsze 5 rekordow posortowane po value ma pole content puste, he?
sprubuj bez limita :-)
intol
Nie, tak napewno nie jest. Bez LIMIT efekt ten sam.

Udało mi się zlokalizować błąd dokładniej, może teraz komuś uda się mi pomóc:

Problem występuje, gdy używam SUBSTR, przy jendoczesnym użyciu łączonych tabel i ORDER BY, tzn.

  1. SELECT SUBSTR(a.content,1,300) AS content FROM articles a, files f ORDER BY a.points

... zwróci pole 'content' jako puste, natomiast zapytanie
  1. SELECT a.content AS content FROM articles a, files f ORDER BY a.points

...zwróci właściwą wartość pola 'content'.
SongoQ
Tak nie powinno byc mozesz podac wersje bazki?
intol
MySQL: 5.0.22;

pole 'content' jest typu longtext

W zasadzie wartość pola jest zwracana na dwa sposoby: albo jako puste, albo NULL (gdy przed użyciem funkcji SUBSTR ma ono wartość NULL).
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.