MySql搜索两个表并将列与like和%

MySql搜索两个表并将列与like和%,mysql,sql,search,sql-like,Mysql,Sql,Search,Sql Like,我试图从两个表中选择数据并将其插入到另一个表中。我想在每个表中的某些内容匹配时选择数据。问题是其中一个比较需要是相似的,而我却不知所措。下面是sql语句,我相信它至少会显示我正在尝试做什么 insert into hr_numbers (`user_id`, `hr_number`) select distinct u.user_id, t.num from temp t, users u where t.name like '%' + u.l_name + '%'

我试图从两个表中选择数据并将其插入到另一个表中。我想在每个表中的某些内容匹配时选择数据。问题是其中一个比较需要是相似的,而我却不知所措。下面是sql语句,我相信它至少会显示我正在尝试做什么

insert into hr_numbers 
  (`user_id`, `hr_number`) 
  select distinct u.user_id, t.num 
    from temp t, users u 
   where t.name like '%' + u.l_name + '%';
我曾尝试过使用程序,但无法理解,甚至无法判断这是否有帮助。

尝试以下方法:

INSERT INTO hr_numbers(`user_id`, `hr_number`)
SELECT DISTINCT U.user_id, T.num
FROM temp T
INNER JOIN users U ON T.NAME LIKE '%' + U.l_name + '%'

首先,确保SELECT在尝试插入之前返回您想要的内容。这:

SELECT DISTINCT 
       u.user_id, 
       t.num 
  FROM temp t, users u 
 WHERE t.name like '%' + u.l_name + '%'
…正在使用ANSI-89联接语法。ANSI-92联接语法是更好的选择:

SELECT DISTINCT
       u.user_id,
       t.num
  FROM USERS u
  JOIN TEMP t ON t.name LIKE CONCAT('%', u.l_name ,'%')

…但加入标准似乎有缺陷。如果姓氏出现在t.name值中,它将链接行,从而导致Smith问题:如果姓氏是Smith,所有行都将链接起来-即使名称是John、Jim等。

这看起来是一个合理的开始。为了能够提供帮助,我们需要更多关于您正在处理的数据、您期望得到的数据以及您实际得到的数据的示例。如果u.l_名称包含特殊字符,如CONCAT“%”,u.l_名称“%”,则警告一句,如CONCAT“%”,u.l_名称“%”,将给出意外的结果,如%or_