MySQL numer wiersza
SeeK
03.08.2013
Mam tabelę z rekordami, którą chcę w zapytaniu posegregować względem kolumny "abc" i wyciągnąć na którym miejscu znajduje się gracz o nicku "xyz". Dodatkowo chciałbym, żeby w liczeniu wierszy były brane pod uwagę tylko te rekordy które w kolumnie "def" mają warość "zyx". Jest to możliwe do zrobienia za pomocą MySQLa? Znalazłem taką stronkę: http://nospor.pl/mysql-faq.html#faq-8 ale nie potrafię chyba dobrze wyciągnąć z niej kodu. Napisałem coś takiego na razie:
SELECT * FROM %s WHERE `def` = 'zyx' ORDER BY abc DESC podsel WHERE `name` = '%s'
Jak poprawić to zapytanie? A gdy będzie już poprawione, to jak wyciągnąć pozycję danego rekordu?
MarWit
03.08.2013
SET @numRow = 0; SELECT @numRow := @numRow + 1 AS numRow, `name`, `def`, `abc` FROM `%s` WHERE `name` = 'xyz' AND `def` = 'zyx' ORDER BY `abc` DESC;?
Użytkownik MarWit edytował ten post 03.08.2013 16:56
SeeK
03.08.2013
Czyli kod w PAWNie będzie wyglądał tak jak poniżej?
format(szTemp,charsmax(szTemp),"SET @numRow = 0; SELECT @numRow := @numRow + 1 AS numRow, `name`, `def`, `abc` FROM `%s` WHERE `name` = 'xyz' AND `def` = 'zyx' ORDER BY `abc` DESC;",TABELA) if(SqlTuple) SQL_ThreadQuery(SqlTuple, "stworzStat", szTemp, Data, 1)
Jak w funkcji stworzStat dobrać się do numRow? Tak jak poniżej?
numRow = SQL_ReadResult(Query, SQL_FieldNameToNum(Query,"numRow"))
Użytkownik SeeK edytował ten post 03.08.2013 23:56
speedkill
10.08.2013
new g_Query[512], g_UserIndex[1]; g_UserIndex[0] = id; formatex(g_Query, charsmax(g_Query), "SELECT COUNT(*) FROM `%s` WHERE `name` = `%s` AND `def` = 'zyx' ORDER BY `abc` DESC", TABELA, g_PlayerName[id]); SQL_ThreadQuery(g_SqlTuple, "ShowResults", g_Query, g_UserIndex, sizeof(g_UserIndex)); public ShowResults(g_FailState, Handle:g_Query, g_Error[], g_ErrorCode, g_Data[], g_DataSize){ if(g_FailState != TQUERY_SUCCESS){ log_amx("<Query> Error: %s", g_Error); return; } new g_Amount = SQL_ReadResult(g_Query, 0), id = g_Data[0]; if(!g_Amount){ g_Amount = 1; } client_print(id, 3, "%d", g_Amount); }
SeeK
20.08.2013
Niestety, nie działa. Errory:
L 08/20/2013 - 02:14:31: [MySQL] Invalid column: -1 L 08/20/2013 - 02:14:31: [AMXX] Displaying debug trace (plugin "przegrane_godziny.amxx") L 08/20/2013 - 02:14:31: [AMXX] Run time error 10: native error (native "SQL_ReadResult") L 08/20/2013 - 02:14:31: [AMXX] [0] przegrane_godziny.sma::stworzStat (line 119)
SeeK
28.08.2013
Ten który podał speedkill
Problem jest w tej funkcji: SQL_ReadResult(g_Query, 0) nie można pobrać argumentu 0-owego.