$gelen_kayit_id ='120-121';
$baglanti -> query("SELECT * FROM kayitlar WHERE kayit_id='$gelen_kayit_id'");Sonuç 120 nolu kayıt dönüyor. burada otomatik int'e dönüştürmeyi iptal edemiyormuyuz?
mysql varchar where sorgusunda int ve string sorunu
2
●49
- 17-11-2021, 02:38:34Daha önce böyle birşeyle karşılaşmadım, bir alanım var ve içinde 120-121 diye iki adet id no var ben bunu ayrı bir tabloda id no olarak arıyordum ve bana 120 id nolu sonucu verdi aslında sonuç dönmeyecek bende ayrıştırıp tire(-) varsa birden fazla id vardır deyip döngüye alacaktım ama buna gerek kalmadan rakamdan sonrasını görmezden gelip direkt where de bana sonucu verdi
- 17-11-2021, 03:17:40
<?php $ids = "120-121-122-123-124"; $explodeIds = explode("-", $ids); $query = "select * from kayitlar where kayit_id = ".join(" or kayit_id = ", $explodeIds);Sonuç:
select * from kayitlar where kayit_id = 120 or kayit_id = 121 or kayit_id = 122 or kayit_id = 123 or kayit_id = 124
Yada idler belli bir aralıktaysa örnek 120 ~ 151, bunun için between keywordunu kullanabilirsiniz.
Örnek;
select * from kayitlar where kayit_id between 120 and 151 - 17-11-2021, 03:18:12mysql de tür dönüşümü olayı varmış yani int olarak gördüğü sayıyı alıyor, bu sorunu şu şekilde çözdüm eğer birden fazla id kullanacaksam başına 0- getirdim böylece 0 hiçbir yerde olmadığından onu bulamaz zaten ve çoklu sorgulama yapacaksam 0 varmı varsa explode php ile bölüp arama yapabilirim artık.