Php 如何在SQL加入请求中使用%LIKE%

Php 如何在SQL加入请求中使用%LIKE%,php,mysql,sql,join,select,Php,Mysql,Sql,Join,Select,我有这样一个加入请求: SELECT * FROM table_1 INNER JOIN table_2 ON table_1.var_1 LIKE table_2.var_2 我想使用%LIKE%而不是LIKE,但我尝试时它不起作用 我需要来自table_1.var_1=table_2.var_2的数据,但也需要来自table_1.var_1%的数据,如%table_2.var_2 可以这样做吗?您好,请使用此查询 SELECT * FROM `table_1` INNER JOIN tab

我有这样一个加入请求:

SELECT * FROM table_1 INNER JOIN table_2 ON table_1.var_1 LIKE table_2.var_2
我想使用
%LIKE%
而不是
LIKE
,但我尝试时它不起作用

我需要来自
table_1.var_1=table_2.var_2
的数据,但也需要来自
table_1.var_1%的数据,如%table_2.var_2


可以这样做吗?

您好,请使用此查询

SELECT * FROM `table_1` INNER JOIN table_2 ON table_1.var_1  WHERE `table_1.var_1` LIKE '%search%' OR table_2.var_2 = '%search2%'
如果有任何错误,请告诉我


首先使用表1中的条件,然后根据您的条件使用“或”&“和”

可能适合使用带有locate的交叉连接

DROP TABLE IF EXISTS T,T1;
CREATE TABLE T(VAL VARCHAR(20));
CREATE TABLE T1(VAL VARCHAR(20));

INSERT INTO T VALUES ('ABCDEF');
INSERT INTO T1 VALUES ('AB');

SELECT T.*
FROM T
CROSS JOIN T1 
WHERE LOCATE(T1.VAL,T.VAL) > 0;

--------+
| VAL    |
+--------+
| ABCDEF |
+--------+
1 row in set (0.001 sec)

%LIKE%
不是有效的mysql语法。您可以在联接中使用或条件。感谢您的回答,但它不起作用。因为,你添加了“搜索”和“搜索2”,但我没有这些。实际上,我希望表1中的所有数据都将“table2.var2”作为“table1.var1”的一部分。更清楚吗?看起来不错,但不合适。我无法在我的SQL窗口中使用“locate”。请尝试instr(t.val,t1.val),如果使用locate时出错,则可能没有使用mysql