Ben bir tabloya iki MySQL sorguları iki uç veri var. Her ikisi de aşağıdaki biçime sahip:
CREATE TABLE IF NOT EXISTS `data` (
`id` BIGINT NOT NULL AUTO_INCREMENT UNIQUE,
PRIMARY KEY (`id`)
)
SELECT `field1`, `field2`
WHERE `active` = 1
İki sorgular arasındaki tek fark nasıl field1
ve field2
belirlenir, ve şartlar Madde bazı küçük farklılıklar. Hem 12K ve daha kayıtlarına kadar çalıştırın.
Şimdi, daha verimli olacaktır:
Ayrı A. Run sorgular hem de:
if (mysql_query($query1)) {
return mysql_query($query2);
}
return false;
B. VEYA BİRLİĞİ ile iki sorguları birleştirmek ve bir kez çalıştırın:
$query = 'SELECT `field1`, `field2` WHERE `active` = 1
UNION
SELECT DO_ONE(`field1`), DO_TWO(`field2`) WHERE `active` = 1
ORDER BY `field1`';
return mysql_query('CREATE TABLE IF NOT EXISTS `data` (
`id` BIGINT NOT NULL AUTO_INCREMENT UNIQUE,
PRIMARY KEY (`id`)
) ' . $query)
Bir sorgudan veri diğerinden veriler olmadan hiçbir işe yaramaz, bu yüzden ikisi de başarılı olmak gerekir. DO_ONE
ve DO_TWO
, bazı özelliklere göre alan verileri değiştirmek tanımlanmış MySQL fonksiyonları kullanıcı bulunmaktadır.