Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: losowe pobieranie wszystkich rekordów
Forum PHP.pl > Forum > Bazy danych > MySQL
hispano
Wita,

1. Mam pytanie jak rozwiązać problem? Przeszukałem funkcje dla mysql i nic. Może jest na to jakiś sposób poprzez odpowiednie zapytanie.
Mianowicie chodzi mi otrzymanie rekordów w wyniku w miarę losowej kolejności. Tak aby za każdym razem kolejność była inna.

Kwestia z funkcją pseudolosową nie jest odpowiednia. Byłoby bardziej zasobo i czaso rzerne.

2. Nie bardzo zrozumiałem przyklejony post o zapytaniach. Moje pytanie może jest prościutkie ale nie mogę przez to przebrnąć i moje zapytania ciągle są na poziomie niskim. Tworze system bazy wiedzy i bardzo mi się to przyda:
-czy jest możliwość uzyskania w jednym wyniku odpowiedzi na zapytanie do tabeli (z zagadnieniami) gdzie jednym z pól jest category_id i zamiast tego otrzymać nazwę odpowiadającą id z drugiej tabeli, która przechowuje nazwy kategorii?

category_id = id
SongoQ
Ad 1
  1. SELECT *
  2. FROM tabela ORDER BY RAND()


Ad 2. Tak mozna
  1. SELECT *
  2. FROM tabela1 LEFT JOIN tabela2 ON (tabela1.kategoria_id = tabela2.id)
hispano
Wielkie dzięki,

Mam jeszcze pytanie do Ad.1: Czy tak można załączać do zapytania więcej funkcji czy jest to pojedyńczy przypadek?
SongoQ
Cytat
Mam jeszcze pytanie do Ad.1: Czy tak można załączać do zapytania więcej funkcji czy jest to pojedyńczy przypadek?

To jest funkcja SQLa (MySQLa) mozesz zamieszczac jesli baza na to pozwala.
hispano
OK działa pięknie, tylko jeszcze mam pytanie, ponieważ nie chcę z różnych względów tak rozbudowanego wyniku.

Mam zapytanie:
  1. SELECT *
  2. FROM `odfaq_question` LEFT JOIN `odfaq_category.name` ON (odfaq_question.category_id = odfaq_category.id)


Jak można wyselekcjonować część kolumn z jednej tabeli i z drugiej?
Przypuszczam, że istenienie kolumn o tej samej nazwie stwarza problem, ponieważ dla zapytania:

  1. SELECT id, question, answer, category_id
  2. FROM `odfaq_question` LEFT JOIN `odfaq_category.name` ON (odfaq_question.category_id = odfaq_category.id)


otrzymałem (dodam, że id występuje w obu tabelach)
#1052 - Column: 'id' in field list is ambiguous

Jak można to rozwiazać??
Radarek
Odwolujesz sie wtedy do pol poprzez notacje NAZWA_TABELI.NAZWA_POLA w ten sposob pole jest okreslone jednoznacznie.


A tak w ogole chyba zle napisales to zapytanie:
  1. SELECT id, question, answer, category_id
  2. FROM `odfaq_question` LEFT JOIN `odfaq_category.name` ON (odfaq_question.category_id = odfaq_category.id)


Przy left join ma byc podana nazwa tabeli a nie pola. Chyba chodzilo ci o:
  1. SELECT odfaq_category.id, question, answer, category_id
  2. FROM `odfaq_question` LEFT JOIN `odfaq_category` ON (odfaq_question.category_id = odfaq_category.id)
hispano
Tak, zrobiłem ten błąd próbując na oślep coś znaleźć i potem wkleiłem to zapytanie.

Wielkie dzięki, działa idealnie.
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.