Mysql 将两个值与不带和条件的正则表达式匹配

Mysql 将两个值与不带和条件的正则表达式匹配,mysql,Mysql,表名:客户数据 我有一张桌子。我想显示名为“Hari”和“prasad”的客户ID。但我需要它与'REGEXP'没有和条件。我尝试了下面的问题,这些都是有效的 例1 例2 我需要以上带有regexp with with and conditionmeans的查询意味着我不想在类似Ex2的where条件中多次使用customer_name字段假定您关心订单,以下查询将起作用: SELECT customer_id FROM customer_details WHERE customer_na

表名:客户数据

我有一张桌子。我想显示名为“Hari”和“prasad”的客户ID。但我需要它与'REGEXP'没有和条件。我尝试了下面的问题,这些都是有效的

例1

例2


我需要以上带有regexp with with and conditionmeans的查询意味着我不想在类似Ex2的where条件中多次使用customer_name字段假定您关心订单,以下查询将起作用:

SELECT customer_id
  FROM customer_details
 WHERE customer_name LIKE '%Raja%Prasad%';
如果您以任何顺序需要它们,您必须使用RLIKE:

这应该做到:

select customer_id from customer_details where customer_name REGEXP '(.*Raja.*)|(.*Prasad.*)';
这可能有助于您使用以下脚本:
从customer_details中选择customer_id,其中名字在“Raja”和“Prasad”中

第一个查询甚至无法工作,因为语法无效,第二个查询也不会返回id为106的记录,因为在LIKE比较中没有使用占位符,这使得它与简单的=。你到底在问什么,我都不明白。OP的表中有名字字段吗?
select cistomer_id from customer_details where customer_name LIKE 'Raja' AND 
           customer_name LIKE 'Prasad';

    O/P: 106.
SELECT customer_id
  FROM customer_details
 WHERE customer_name LIKE '%Raja%Prasad%';
SELECT customer_id
  FROM customer_details
 WHERE customer_name RLIKE 'Raja.*Prasad|Prasad.*Raja';
select customer_id from customer_details where customer_name REGEXP '(.*Raja.*)|(.*Prasad.*)';