Как получить фактический номер индекса в MySQL при использовании предложения Where - PullRequest
0 голосов
/ 18 июня 2019

Я работаю над таблицей Users, к которой добавляю предложение where, например:

SELECT F_Name, L_Name FROM Users Where HouseCode = 'ABC';

, которое возвращает всех пользователей, имеющих ABC в столбце HouseCode.Но я хочу, чтобы фактический номер индекса или фактические номера строк этих пользователей из строк таблицы.

Пример: те пользователи, которые имеют HouseCode = 'ABC', находятся на номере строки

10,18,24,77,82

Итак, как получить действительные номера строк или индексы этих пользователей, используя запрос?

Примечание: у меня есть идентификатор в качестве первичного ключа, который автоматически увеличивается, но я должен удалитьПользователи иногда.Поэтому не могу на это полагаться.

Спасибо

Отредактировано:

Я понимаю, что вы пытаетесь сказать, но позвольте мне объяснить вам на собственном примере: Теперь завтра, если я удалю 3-ю запись о Джейсоне, тогда в фактическом индексе запись Карен с идентификатором 4 фактически станет 3-й, что является реальным индексом этой записи.Вот так:

id     |    F_Name    |     L_Name  | HousecCode
-------------------------------------------------
 1           Mark           Dine         123 
 2           Mary           Codd         ABC
 3          Jason           Trex         ABC
 4          Karen           Port         456
 5           Jan          Hellopei       ABC


INDEX_NO |   id     |    F_Name    |     L_Name  | HousecCode
----------------------------------------------------------------------
 1          1           Mark            Dine            123 
 2          2           Mary            Codd            ABC
 3          4          Karen            Port            456
 4          5           Jan            Hellopei         ABC

Поэтому, когда я выбираю записи, он должен дать мне фактический индекс, посчитав его позицию в таблице.Вот почему я не могу положиться на столбец идентификатора.

Ответы [ 2 ]

2 голосов
/ 18 июня 2019

Просто констатирую очевидное, что уже сказано:

  • Механизмы реляционных баз данных, такие как MySQL, не имеют номеров строк, как лист Excel.
1 голос
/ 19 июня 2019

Для поддержки правильный ответ от Impaler

Примечание. У меня действительно есть идентификатор в качестве первичного ключа, который автоматически увеличивается, но иногда приходится удалять пользователей. Поэтому не могу на это рассчитывать.

Используйте PRIMARY KEY, столбец id. Тот факт, что значения отсутствуют, не влияет на столбец,

поэтому:

SELECT id, F_Name, L_Name FROM Users Where HouseCode = 'ABC';

Это выведет значение UNIQUE AUTO-INCREMENT id с соответствующими столбцами.

Является ли столбец непрерывной цепочкой чисел, субъективно и не является частью какого-либо абсолютного учета SQL.

Если вы просто хотите получить непрерывный номер элемента, вам не нужно это записывать; но вам нужно сгенерировать это при выводе данных:

Полный пример:

Данные в таблице:

id     |    F_Name    |     L_Name  | HousecCode
-------------------------------------------------
 1           Mark           Dine         123 
 2           Mary           Codd         ABC
 3          Jason           Trex         ABC
 4          Karen           Port         456
 5           Jan          Hellopei       ABC

Результат из вашего SQL будет:

id     |    F_Name    |     L_Name  
------------------------------------
 2           Mary           Codd     
 3          Jason           Trex     
 5           Jan          Hellopei   

Джейсон Трекс будет всегда находиться на строке номер 3 в базе данных MySQL, но Джейсон Трекс может быть (как здесь) номером результата 2 .

Таким образом, чтобы вывести это, вы должны использовать структуру loop:

Псевдокод (PHP):

$counter = 0;
foreach($result as $row) {
    $counter++;
    print $counter." : ". $row['F_Name']." ".$row['L_Name']."<br>";
    }
unset($counter, $row);

Ваш результат будет выглядеть так:

 1     :    Mary     Codd         
 2     :    Jason    Trex    
 3     :    Jan      Hellopei   

Значение 1,2,3 и т. Д. не нужно хранить в MySQL , поскольку оно составляет для каждого списка .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...