Dha*_*dva 1 php mysql sql sql-server
我正在研究MySQL,我有点陷入困境.我想触发搜索查询以从数据库表中检索匹配记录.一切正常,但当我要搜索记录时,我使用内部选择检索它将不会是搜索.我不知道如何解雇查询.
这是我的sqlfiddle演示
SQL代码:
CREATE TABLE supplier
(
supplier_id int auto_increment primary key,
supplier_name varchar(20)
);
INSERT INTO supplier
(supplier_name)
VALUES
('billgate'),
('jobs'),
('zukkerburg');
CREATE TABLE products
(
product_id int auto_increment primary key,
supplier_id int,
product_name varchar(20)
);
INSERT INTO products
(supplier_id,product_name)
VALUES
('1','microsoft'),
('2','apple'),
('3','facebook');
Run Code Online (Sandbox Code Playgroud)
查询检索所有记录:
SELECT *,(SELECT supplier_name FROM supplier WHERE supplier_id = products.supplier_id) AS supplier_name FROM products ORDER BY product_id DESC
Run Code Online (Sandbox Code Playgroud)
在上面的演示中如果我触发查询如下,它将给出正确的结果.
SELECT *,(SELECT supplier_name from supplier where supplier_id = products.supplier_id) as supplier_name FROM products WHERE product_name LIKE '%facebook%' ORDER BY product_id desc
Run Code Online (Sandbox Code Playgroud)
但我想从列表中搜索supplier_name然后我该如何实现这一目标?
-------------HERE YOUR SQL QUERY (ANSWER)----------
Run Code Online (Sandbox Code Playgroud)
在此先感谢您的帮助,非常感谢
试试这个:
SELECT
*
FROM
products
INNER JOIN supplier
ON
supplier.supplier_id = products.supplier_id
WHERE
supplier_name LIKE '%jobs%'
ORDER BY product_id desc;
Run Code Online (Sandbox Code Playgroud)
另一件事,LIKE除非你真的必须避免使用(在这种情况下,索引支持的WHERE中的附加子句可以加速查询).使用LIKE '%something%'
阻止MySQL使用索引(如果你有一个).