Можем ли мы скрыть некоторые строки в MySQL?

#mysql #sql

#mysql #sql

Вопрос:

Допустим, мы извлекаем данные таблицы из кода php.

1 — Без удаления и восстановления определенных строк из таблицы и,
2- Без наличия столбца « hidden » (значения 0 или 1) и с использованием запроса
SELECT ..... WHERE....AND hidden=0

Возможно ли временно «скрыть» некоторые строки?
Или каков наилучший способ сделать это?

Ответ №1:

Альтернативой было бы создать a VIEW , который не включает ненужные строки; это может быть лучше, если требование имеет (полупостоянный) характер. Подробнее см. Здесь.

Комментарии:

1. в любом случае у меня должно быть другое имя для представления (не совпадающее с именем таблицы), верно? Затем нам нужно изменить запрос. Но, похоже, в любом случае мне нужно изменить запрос. Это может быть самым простым решением, поскольку нам нужно изменить только SELECT FROM xxxxx часть.

Ответ №2:

Как вы узнаете, какие строки вы хотите удалить? Например, если вы знаете идентификатор для каждой из строк, вы можете добавить исключение к своим запросам

 AND id NOT IN (4,9,28)
  

Ответ №3:

Вы можете использовать WHERE id NOT IN

 SELECT * FROM talName WHERE id NOT IN (1, 3)

 ---- --------- ----- 
| id |  name   | age |
 ---- --------- ----- 
|  2 | John    |  23 |
|  4 | Mary    |  21 |
|  5 | Michael |  26 |
 ---- --------- ----- 
  

Ответ №4:

Невозможно скрыть без удаления, поскольку метка для hidden уже выполнена (hidden = 1).

Хотя правильный способ — изменить первый запрос, поскольку вы не будете извлекать ненужные данные, вы можете:

  • Запрос по запросу, добавление части ‘where hidden = 0’
  • Фильтруйте данные внутри скрипта, который обрабатывает таблицу
  • Добавьте представление в базу данных с предварительной фильтрацией (где hidden = 0)
  • Отфильтруйте данные на клиенте (начните с того, что все скрыто, и с помощью jquery покажите, что вы хотите (хотя не рекомендуется в качестве решения)

Комментарии:

1. Я думаю, что спрашивающий говорит, что они не хотят использовать «скрытый» столбец, а не то, что он у них есть.

2. Я думал, что он не может изменить исходный запрос!

3. «… Без наличия столбца «скрытый» …» — таким образом, скрытого столбца нет.