PHP ile birden fazla aynı adı sütunlar ile MySQL satırın sonucu almak için nasıl?

4 Cevap php
select * from A left join B on A.columnc=B.columnd

Yukarıdaki SQL tarafından döndürülen sonuçları A ve B ikisi de sütunları kapsayacaktır

Ve ne A ve B aynı adı taşıyan bazı sütunları varsa?

PHP değerini almak nasıl?

4 Cevap

Muhtemelen sorguda daha açık olmak istiyorum. Eğer sütunları için sağlayabilir Bu şekilde:

SELECT
  A.foo as a_foo,
  B.foo as b_foo
FROM A
LEFT JOIN B ON A.columnc = B.columnd

Cevap PHP documentation in aslında olduğunu:

"Sonucu iki veya daha fazla sütun aynı alan adları varsa, son sütun önceliği alacaktır. Aynı adı diğer sütun (lar) erişmek için, ({[kullanılarak sayısal endeksleri ile sonuca erişmek gerekir ya 0)]} veya takma isimlerini ekleyebilir. adlar hakkında mysql_fetch_array() tanÄ örneğe bakın. "

Especialy mysql_fetch_array() Eğer select deyiminde star kullanarak ısrar zaman en iyi aday gibi görünüyor:

$row = mysql_fetch_array($result, MYSQL_BOTH)

Sonra $row[name] tarafından ve $row[col_number] tarafından ambigous birine unambigous alanlara başvurabilir, ama bu kod taşınabilirliği (belki MySQL sonraki sürümü sütunları dönmek için gidiyor sınırlar Farklı sipariş?). Kullanım adlar - Önerilen çözüm sorguyu yeniden yerine star kullanarak ve ambigous olanlar için tüm gerekli alanları görebilirisiniz.

Sen select deyiminde column aliases kullanmalısınız.

ResultSet nesneden Java + MySQL, siz ("a.id") getString ve de ("b.id") getString örneğin kullanabilirsiniz, sorgu "a.id SEÇ gibi olsaydı, b.id bir DAN, b "

PHP böyle bir şey varsa ben bilmiyorum.

Selamlar