12.11.202011:2112.11.2020 11:21:04
Примеры SQL запросов
Выбрать товары, для которых цен установлено более 12
SELECT PRODUCT_ID, count(PRODUCT_ID) as cnt
from b_catalog_price
group by PRODUCT_ID
having cnt>12 |
выбрать товары, для которых разделы не проставлены в таблице разделов b_iblock_section_element
SELECT ID
FROM b_iblock_element
WHERE ID NOT IN (SELECT IBLOCK_ELEMENT_ID FROM b_iblock_section_element WHERE IBLOCK_ELEMENT_ID=ID); |
Работа с БД через api bitrixglobal $DB;
$text = $DB->ForSql($text); //Подготавливает строку (заменяет кавычки и прочее) для вставки в SQL запрос
$strSql = "SELECT ID FROM b_stat_phrase_list WHERE PHRASE='".$text."' and SESSION_ID='".$_SESSION["SESS_SESSION_ID"]."'"; //sql запрос
$res = $DB->Query($strQuery); //выполняет запрос SELECT,INSERT,DELETE,UPDATE
while ($row = $res->Fetch()){
//..
}
$DB->StartTransaction(); //Открывает транзакцию
$arFields = array('имя поля'=>'значение');
$arFields["TIMESTAMP_X"] = $DB->GetNowFunction(); //текущее время
//обновить вариант 1
$DB->Update("b_form", $arFields, $strWhere);
//обновить вариант 2
$strUpdate = $DB->PrepareUpdate("b_form_result_answer", $arFields, "form");
$strSql = "UPDATE b_form_result_answer SET ".$strUpdate." WHERE RESULT_ID=".$RESULT_ID." and FIELD_ID=".$FIELD_ID;
$DB->Query($strSql, false, $err_mess.__LINE__);
//добавить вариант 1
$ID = $DB->Insert("b_form", $arFields);
//добавить вариант 2
$arInsert = $DB->PrepareInsert("b_form_result_answer", $arFields, "form");
$strSql = "INSERT INTO b_form_result_answer (".$arInsert[0].") VALUES (".$arInsert[1].")";
$DB->Query($strSql, false, $err_mess.__LINE__);
if (strlen($strError)<=0){
$DB->Commit(); //сохранить последние изменения в базе и закрыть транзакцию
}
else{
$DB->Rollback(); //откатить изменения и закрыть транзакцию
}
|
12.11.202011:2112.11.2020 11:21:04