Error in SQL syntax using Any (x => c.Contains (x))

I am trying to do a search from a client table using the framework entity. It works when launched locally, but when I uploaded it to the server, I received the following error:

You have an error in the SQL syntax; check the manual that matches your version of MySQL server for the correct syntax to use around '% mark%)' on line 23

This is the code I'm using:

string[] searchCriteria = search.Split(' ');

var clients = from c in context.client
          where searchCriteria.Any(x => c.name.Contains(x)) ||
          searchCriteria.Any(x => c.surname.Contains(x)) ||
          searchCriteria.Any(x => c.email.Contains(x)) ||
          searchCriteria.Any(x => c.mobile.Contains(x)) ||
          searchCriteria.Any(x => c.code.Contains(x)) ||
          searchCriteria.Any(x => c.company.Contains(x))
          select c;

As requested, the SQL statement is as follows:

SELECT
`Extent1`.`id`, 
`Extent1`.`email`, 
`Extent1`.`password`, 
`Extent1`.`name`, 
`Extent1`.`surname`, 
`Extent1`.`address1`, 
`Extent1`.`address2`, 
`Extent1`.`cityid`, 
`Extent1`.`deliveryaddress1`, 
`Extent1`.`deliveryaddress2`, 
`Extent1`.`deliverycityid`, 
`Extent1`.`phone`, 
`Extent1`.`mobile`, 
`Extent1`.`code`, 
`Extent1`.`vat`, 
`Extent1`.`company`
FROM `client` AS `Extent1`
 WHERE (((((EXISTS(SELECT
1 AS `C1`
FROM (SELECT
1 AS `X`) AS `SingleRowTable1`
 WHERE `Extent1`.`name` LIKE '%mark%')) OR (EXISTS(SELECT
1 AS `C1`
FROM (SELECT
1 AS `X`) AS `SingleRowTable2`
 WHERE `Extent1`.`surname` LIKE '%mark%'))) OR (EXISTS(SELECT
1 AS `C1`
FROM (SELECT
1 AS `X`) AS `SingleRowTable3`
 WHERE `Extent1`.`email` LIKE '%mark%'))) OR (EXISTS(SELECT
1 AS `C1`
FROM (SELECT
1 AS `X`) AS `SingleRowTable4`
 WHERE `Extent1`.`mobile` LIKE '%mark%'))) OR (EXISTS(SELECT
1 AS `C1`
FROM (SELECT
1 AS `X`) AS `SingleRowTable5`
 WHERE `Extent1`.`code` LIKE '%mark%'))) OR (EXISTS(SELECT
1 AS `C1`
FROM (SELECT
1 AS `X`) AS `SingleRowTable6`
 WHERE `Extent1`.`company` LIKE '%mark%'))

I would also point out that when I run it directly in the database, it works fine.

+4
source share

Source: https://habr.com/ru/post/1627943/


All Articles