[英]Using LIKE in mySQL WHERE Clause
I am trying to SELECT data WHERE the Name contains Christina using the following query, but it is returning all data, not only Christina . 我正在尝试使用以下查询在名称包含Christina的情况下选择数据,但它返回的不仅是Christina的所有数据。
SELECT a.id_transaksi, a.total_harga, (
SELECT c.id_transfer
FROM tbl_transfer c
WHERE c.id_transaksi = a.id_transaksi
) AS id_transfer, (
SELECT d.nama
FROM tbl_costumer d
WHERE d.username = a.username
) AS nama_costumer
FROM tbl_faktur a, tbl_transfer c, tbl_costumer d
WHERE a.konfirm_user = 1
AND d.nama LIKE '%christina%'
GROUP BY a.id_transaksi
ORDER BY a.id_transaksi DESC
You don't need subqueries. 您不需要子查询。
join
the tables with the appropriate conditions and it should work. 以适当的条件
join
表格,它应该可以工作。
SELECT
a.id_transaksi, a.total_harga,
c.id_transfer id_transfer,
d.nama as nama_costumer
FROM tbl_faktur a
JOIN tbl_transfer c on c.id_transaksi = a.id_transaksi
JOIN tbl_costumer d on d.username = a.username
WHERE a.konfirm_user = 1
AND d.nama LIKE '%christina%'
ORDER BY a.id_transaksi DESC
Your only filter on the 'top-level' query is c.id_transaksi = a.id_transaksi
. 您对“顶级”查询的唯一过滤器是
c.id_transaksi = a.id_transaksi
。 You'll need to join
against tbl_costumer
, then filter on that to see the result you're expecting. 您需要针对
tbl_costumer
join
,然后对其进行过滤以查看期望的结果。 I don't know the relationships between your customer/transfer table, but there's likely a customer_id
on tbl_transfer
, which should get you to the costumer table. 我不知道您的客户/转移表之间的关系,但是
tbl_transfer
上可能有一个customer_id
,应该可以使您进入客户表。
I have found the answer, just adding EXSIST to WHERE clause... 我找到了答案,只是将EXSIST添加到WHERE子句中...
SELECT a.id_transaksi, a.total_harga, a.total_berat, a.kurir, a.servis, a.resi, a.konfirm_user, a.konfirm_admin, a.date_user, a.ongkir, (
SELECT c.id_transfer
FROM tbl_transfer c
WHERE c.id_transaksi = a.id_transaksi
) AS id_transfer, (
SELECT d.nama
FROM tbl_costumer d
WHERE d.username = a.username
) AS nama_costumer, (
SELECT d.provinsi_asal
FROM tbl_costumer d
WHERE d.username = a.username
) AS provinsi_asal, (
SELECT d.kota_asal
FROM tbl_costumer d
WHERE d.username = a.username
) AS kota_asal, (
SELECT d.alamat
FROM tbl_costumer d
WHERE d.username = a.username
) AS alamat, (
SELECT d.tlp
FROM tbl_costumer d
WHERE d.username = a.username
) AS tlp
FROM tbl_faktur a, tbl_transfer c, tbl_costumer d
WHERE a.konfirm_user=1 AND exists (SELECT d.nama from tbl_costumer d where a.username=d.username and d.nama like '%$keyword%')
GROUP BY a.id_transaksi
ORDER BY a.id_transaksi DESC
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.