Search code examples
mysqlstored-proceduresfindsql-like

how to use like syntax in stored procedure


I am beginner using with php language and mysql for database. this command not error but a variable cannot called

sorry I do not fluent english

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

Solution

  • Try:

    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