Проверьте массив значений в базе данных MySQL - PullRequest
0 голосов
/ 10 мая 2019

У меня есть таблица базы данных "Mytable", которая содержит 2 столбца ("colimn1" и "column2").У меня также есть список значений column1, где мне нужно провести перекрестную проверку с таблицей, чтобы убедиться, что значения существуют в таблице или нет.Все несуществующие значения в списке должны отображаться в результате запроса.

Например,

Value list = ["c1","c2", "c3", "c4"]
Values in the database = C2 and C3

Следовательно, после перекрестной проверки с базой данных результатом должны быть c1 и c4.

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

select if(exists(select column2_val from myTable where column2_val = '3c2'), 'display when true', 'display when false');

Здесь я предоставляю длинный список значений column2, и я хочу, чтобыотобразить все значения, которых нет в таблице, как конечный результат?

Ответы [ 2 ]

0 голосов
/ 16 мая 2019

Вы должны создать временную таблицу и вставить любой список, а затем написать запрос с учетом двух таблиц, чтобы найти несуществующий один раз.

Хотя временные таблицы будут уничтожены после окончания сеанса, вам все равно нужно убедиться, что значения временных таблиц не занимают много памяти, что влияет на вашу производительность

0 голосов
/ 10 мая 2019

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

SELECT t1.column2_val
FROM
(
    SELECT 'c1' AS column2_val UNION ALL
    SELECT 'c2' UNION ALL
    SELECT 'c3' UNION ALL
    SELECT 'c4'
) t1
WHERE NOT EXISTS (SELECT 1 FROM myTable t2 WHERE t1.column2_val = t2.column2_val);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...