Saya perlu mengurangi nilai dengan operasi basis data atom , apakah mungkin menggunakan model Magento?
setNumber($number)
berfungsi seperti number = $number
, tapi saya perlu dikurangi dalam query SQL.
Apakah mungkin di Magento atau saya harus menulis kueri SQL sendiri?
model
sql
resource-model
tmm
sumber
sumber
setNumber(number)
memiliki sesuatu sepertidecreaseBy(number)
Jawaban:
Ya, itu mungkin, menggunakan
Zend_Db_Expr
:Sebagai referensi:
Metode ini
Mage_Core_Model_Resource_Abstract::_prepareDataForSave()
berisi kode berikut:Model EAV:
Perhatikan bahwa Anda hanya dapat mereferensikan atribut dengan namanya ("angka" dalam contoh) jika itu adalah kolom nyata dari tabel utama, bukan atribut EAV.
Meskipun metode yang disebutkan di atas hanya digunakan oleh model dengan tabel datar,
Zend_Db_Expr
dapat digunakan untuk atribut EAV juga, metode yang menanganinyaVarien_Db_Adapter_Pdo_Mysql::prepareColumnValue()
.TETAPI Anda selalu menggunakan nama kolom "
value
":Anda tidak perlu menentukan alias tabel karena saat menyimpan setiap atribut diproses dengan kueri sendiri, jadi "nilai" tidak ambigu.
sumber
$collection->getSelect()
Sunting: Ini akan sama dengan
Set number = number - X
di mysql di mana X adalah $ number.Jika Anda ingin melakukannya di MySQL saja maka Anda hanya perlu menulis kueri.
sumber
number=some_number
dalam kueri sqlUPDATE table SET number = number - 1