php
  • mysql
  • 2015-04-14 44 views 0 likes 
    0

    我有一列kd_barang2作爲我的表中的ID。值是這樣的:010000101.如何子字符串WHERE在選擇php mysql

    我想選擇第7個數字(0100001)然後顯示它。

    的腳本,以選擇是這樣的:

    $queryalat1="select * from tb_master 
        where kd_barang2 = '".$data1['kd_barang2']."' 
        && jenis_barang='alat habis pakai' 
        Group by merk_barang"; 
    

    ,然後我嘗試這種代碼

    $queryalat1="select * from tb_master 
        where SUBSTRING(kd_barang2,0,7) = '".substr($data1['kd_barang2'],0,7)."' 
        && jenis_barang='alat habis pakai' 
        Group by merk_barang"; 
    

    但是失敗了,因爲它並沒有顯示在我的表中的任何數據。

    +0

    嘗試'$ queryalat1 =「select * from tb_master where kd_barang2 ='」.substr($ data1 ['kd_barang2'],0,7)。''&& jenis_barang ='alat habis pakai'Group by merk_barang「; ' –

    +1

    切勿將字符串連接到SQL查詢中!瞭解如何使用參數。 –

    +0

    使用'AND' not'&&' –

    回答

    2

    你使用MySQL的SUBSTRING功能與錯誤的開始值。在PHP substr()將從零開始,但在MySQL是從1開始。所以,你需要使用SUBSTRING(kd_barang2, 1, 7)

    +0

    ohh我看到了,你的解決方案真的可以工作..:D 我不知道mysql的子串從1開始... -_- 非常感謝你,猜我必須瞭解更多... – Shitprogrammers

    2

    嘗試

    $queryalat1="select * from tb_master where LEFT(kd_barang2,8) = '".substr($data1['kd_barang2'],0,7)."' && jenis_barang='alat habis pakai' Group by merk_barang"; 
    
    +0

    它應該是'LEFT(kd_barang2,7)' – Barmar

    2

    試試這個..
    $ queryalat1 =「SELECT * FROM tb_master
    其中左(kd_barang2,7)= ''.substr($ data1 ['kd_barang2'],0,7)。「'
    & & jenis_barang ='alat habis pakai'
    Group by merk_barang」;

    相關問題