JSON в MySQL где условие - PullRequest
       38

JSON в MySQL где условие

0 голосов
/ 03 августа 2020

У меня есть следующий JSON Список: '["Foo","Bar"]'
Следующие записи находятся в моей MySQL таблице t

Name   | Color
--------------
Foo    | Red
Bar    | Blue
Foobar | Green

Есть ли способ использовать мой JSON Укажите в качестве условия в моем предложении where и получите тот же результат, например:

select * from t where name in ('Foo','Bar')

?

Ответы [ 2 ]

0 голосов
/ 03 августа 2020

Акина решила это:
SELECT * FROM t WHERE JSON_CONTAINS ('["Foo", "Bar"]', CONCAT ('"', Name, '"'))

0 голосов
/ 03 августа 2020

Насколько мне известно, вы можете поместить несколько операторов WHERE в запрос SQL

См.: https://www.w3schools.com/SQl/sql_where.asp, вам просто нужно добавить «И» или «ИЛИ» после каждого condition

SELECT * FROM Customers
WHERE Country='Mexico' 
    AND Address='Avda. de la Constitución 2222' 
    OR Address='Mataderos 2312';
;

Итак, вы просто создаете нужную строку перед использованием с c#, вы можете сделать что-то вроде (только операторы AND):

public List<Data> ExecuteQueryAND(List<string> statements, string table)
{
   // initial connection
   // ...

   string str = $"SELECT * FROM {table}\n";
   for (int i =0; i > statements.Count; i++) 
   {
      if( i == 0 ) 
      {
         str = str + $"WHERE {statements[i]}\n";
      }
      str = str + $"\tAND {statements[i]}\n";
   }
   str = str + ";";

   Console.WriteLine("Sql Query: " + str);
   // more code to execute sql
}

, а затем, когда вы его вызовете:

// some code ..
   FilterList = ExecuteQueryAND( new List<string> { "Access=\"ADMIN\""});
// more code ..
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...