如何在存储过程中使用 like 语法

how to use like syntax in stored procedure

我是使用 php 语言和 mysql 数据库的初学者。 此命令没有错误,但无法调用变量

抱歉我英语不好

DELIMITER $$

CREATE DEFINER=`root`@`localhost` PROCEDURE `allBarang`($barang varchar(50))

BEGIN

SELECT nm_barang, harga,diskon,deskripsi,image,barang.id_kategori,jenis 
FROM barang    
INNER JOIN kategori on kategori.id_kategori = barang.id_kategori
Where nm_barang LIKE '%$barang%';

END

尝试:

DELIMITER $$

DROP PROCEDURE IF EXISTS `allBarang`$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `allBarang`(`$barang` VARCHAR(50))
BEGIN    
  SELECT
    `nm_barang`,
    `harga`,
    `diskon`,
    `deskripsi`,
    `image`,
    `barang`.`id_kategori`,
    `jenis` 
  FROM `barang`
    INNER JOIN `kategori` ON `kategori`.`id_kategori` = `barang`.`id_kategori`
  WHERE `nm_barang` LIKE CONCAT('%', `$barang`, '%');
END$$

DELIMITER ;

SQL Fiddle demo