Jeśli Twoim jedynym celem jest sprawdzenie, czy istnieje wiersz w php (prawda lub fałsz), jaki jest najlepszy sposób na zrobienie tego?Jaki jest najlepszy sposób sprawdzenia, czy wiersz istnieje? EXISTS, COUNT lub num_rows?
Opcja 1?
$result = mysql_query("SELECT * FROM users WHERE id = '1'");
$num_rows = mysql_num_rows($result);
if ($num_rows == 1)
// one user, like it should be.
else
// do something else
Opcja 2?
$query = mysql_query("select count(1) from users where id = 1")
if (mysql_result($query, 0) == 1)
// one user, like it should be.
else
// do something else
Wariant 3?
$query = mysql_query("something like SELECT EXISTS(SELECT */1/COUNT(*)/etc. ...)")
if (mysql_result($query, 0) == 1)
// one user, like it should be.
else
// do something else
Beter opcja 4?
możesz to nazwać.
Subquestions
COUNT(*), COUNT(1) or COUNT(id)
?
możliwe duplikat [SQL coraz optymalizacji liczba wierszy] (http://stackoverflow.com/questions/8852753/sql-getting-row-count-optimisation) – mario
@mario: Jest powiązany, ale nie taki sam. Tutaj jest pytanie, czy liczba = 0 lub> 0, a nie dokładna liczba. –
@ypercube: Inne powielane tam łącza pokrywają to. I więcej istnieje w kwestii COUNT vs EXISTS, http://stackoverflow.com/questions/1676551/best-way-to-test-if-a-row-exists-in-a-mysql-table – mario