Mysql жаңартуы күрделі жаңарту сұрауы болып табылады. Синтаксис ЖАҢАРТУ. Бір бағанды ​​жаңарту мысалы



Мақаланың мазмұны
1. Ең қарапайым MySQL сұраулары
2. Қарапайым ТАҢДАУ сұраулары
3. Қарапайым INSERT (жаңа жазба) сұраулары
4. Қарапайым ЖАҢАЛЫҚ (үстіне жазу, қосу) сұраулары
5. Қарапайым ЖОЮ (жазбаны жою) сұраулары
6. Қарапайым DROP (кестені жою) сұраулары
7. Күрделі MySQL сұраулары
8. MySQL сұраулары және PHP айнымалылары

1. Ең қарапайым SQL сұраныстары

1. БАРЛЫҚ дерекқорлар тізімін көрсетеді.

SHOW мәліметтер қорын;
2. base_name дерекқорындағы БАРЛЫҚ кестелерді тізімдейді.

base_name ішіндегі кестелерді КӨРСЕТУ;

2. MySQL дерекқорына қарапайым ТАҢДАУ сұраулары

ТАҢДАУ– дерекқордан бар деректерді таңдайтын сұраныс. Таңдау үшін арнайы таңдау параметрлерін көрсетуге болады. Мысалы, орыс тіліндегі сұраныстың мәні келесідей естіледі: Осындай және осындай бағандарды ТАҢДАҢЫЗ осындай және осындай бағанның параметрі мәнге тең болатын ЖЕРДЕ осындай және осындай кестеден.

1. tbl_name кестесіндегі БАРЛЫҚ деректерді таңдайды.

ТАҢДАУ * FROM tbl_name;
2. tbl_name кестесіндегі жазбалар санын көрсетеді.

tbl_name FROM САНДЫ ТАҢДАУ(*);
3. (FROM) кестесінен tbl_name шегі (LIMIT) 2-ден бастап 3 жазбадан (ТАҢДАУ) таңдайды.

ТАҢДАУ * FROM tbl_name LIMIT 2,3;
4. tbl_name (FROM) кестесінен БАРЛЫҚ (*) жазбаларды (ТАҢДАУ) таңдайды және оларды id өрісі бойынша ретімен сұрыптайды (ТАПСЫРУ БОЙЫНША).

ТАҢДАУ * FROM tbl_name ORDER BY id;
5. tbl_name кестесінен БАРЛЫҚ жазбаларды (ТАҢДАУ) таңдайды және оларды id өрісі бойынша КЕРІ ретпен сұрыптайды (ТАҢДАУ).

ТАҢДАУ * FROM tbl_name ORDER BY id DESC;
6. Таңдайды ( ТАҢДАУ) БАРЛЫҚ (*) жазбалар (( FROM) кестелер пайдаланушыларжәне оларды сұрыптайды ( БОЙЫНША СҰРЫПТАУ) далада idөсу ретімен, шек ( ШЕК) алғашқы 5 жазба.

ТАҢДАУ * пайдаланушылардан ТАПСЫРЫС идентификаторы ШЕК 5;
7. Кестеден барлық жазбаларды таңдайды пайдаланушылар, өріс қайда fnameмәніне сәйкес келеді Гена.

Пайдаланушылардан * ТАҢДАУ fname="Gena";
8. Кестеден барлық жазбаларды таңдайды пайдаланушылар, мұндағы өріс мәні fname-ден бастаңыз Ге.

* «Ge%» сияқты fname ЖЕРДЕ пайдаланушылардан ТАҢДАУ;
9. Кестеден барлық жазбаларды таңдайды пайдаланушылар, Қайда fname-мен аяқталады на, және жазбаларды мәннің өсу реті бойынша сұрыптайды id.

* ТАҢДАҢЫЗ ПАЙДАЛАНУШЫЛАРДАН Fname "%na" СИЯҚТЫ ЖЕРДЕ ИД БОЙЫНША ТАПСЫРЫС БЕРУ;
10. Бағандардан барлық деректерді таңдайды fname, атыүстелден пайдаланушылар.

SELECT fname, lname FROM пайдаланушылар;

11. Пайдаланушы деректер кестесінде ел бар делік. Сонымен, егер сіз ТЕК орын алған мәндердің тізімін көрсеткіңіз келсе (мысалы, Ресей 20 рет емес, тек бір рет көрсетілу үшін), біз DISTINCT пайдаланамыз. Ол Ресейді, Украинаны, Беларусьті қайталанатын құндылықтар массасынан алып шығады. Осылайша, кестеден пайдаланушыларспикерлер елБАРЛЫҚ ЕРЕКШЕ мәндер шығарылады

Пайдаланушылардан ДИSTINCT елді ТАҢДАУ;
12. Кестеден БАРЛЫҚ жол деректерін таңдайды пайдаланушыларҚайда жасы 18,19 және 21 мәндері бар.

ТАҢДАУ * ЖАСЫ КЕЛГЕН пайдаланушылардан (18,19,21);
13. MAXIMUM мәнін таңдайды жасыкестеде пайдаланушылар. Яғни, кестеңізде ең үлкен мән болса жасы(ағылшын тілінен бастап) 55 болса, сұрау нәтижесі 55 болады.

Пайдаланушылардан максимум (жас) ТАҢДАУ;
14. Кестеден деректерді таңдаңыз пайдаланушыларөрістер бойынша атыЖәне жасыҚАЙДА жасыең кіші мәнді қабылдайды.

ТАҢДАУ атын, мин(жас) пайдаланушылардан;
15. Кестеден деректерді таңдаңыз пайдаланушыларалаңда атыҚАЙДА id 2-ге ТЕҢ ЕМЕС.

Пайдаланушылардан атауды ТАҢДАҢЫЗ WHERE id!="2";

3. Қарапайым INSERT (жаңа жазба) сұраулары

INSERT– дерекқорға жазбаны БАСТАУЫМЕН кірістіруге мүмкіндік беретін сұраныс. Яғни, мәліметтер базасында ЖАҢА жазба (жол) жасайды.

1. Бар жаңа жазбакестеде пайдаланушылар, алаңда атыСергейді енгізеді және далада жасы 25 кірістіреді. Осылайша, кестеге осы мәндері бар жаңа жол қосылады. Егер бағандар көбірек болса, қалғандары бос немесе әдепкі мәндерімен қалады.

INSERT INTO пайдаланушыларға (аты-жөні, жасы) VALUES («Сергей», «25»);

4. MySQL дерекқорына қарапайым UPDATE сұраулары

ЖАҢАРТУ– өріс мәндерін САҚТАУҒА немесе дерекқордағы бұрыннан бар жолға бірдеңе ҚОСУға мүмкіндік беретін сұрау. Мысалы, дайын жол бар, бірақ жас параметрі уақыт өте өзгергендіктен, оған қайта жазу керек.

1. Кестеде пайдаланушылар жасы 18 болады.

ЖАҢАРТУ пайдаланушылар SET age = "18" WHERE id = "3";
2. Барлығы бірінші сұраудағыдай, ол жай ғана сұрау синтаксисін көрсетеді, мұнда екі немесе одан да көп өрістер қайта жазылады.
Кестеде пайдаланушылар WHERE идентификаторы 3 өріс мәніне тең жасы 18 жаста және елРесей.

ЖАҢАРТУ пайдаланушылар SET жасы = "18", ел = "Ресей" WHERE id = "3";

5. MySQL дерекқорына қарапайым DELETE (жазбаны жою) сұраулары

ЖОЮ– кестеден жолды өшіретін сұраныс.

1. Кестеден жолды жояды пайдаланушыларҚАЙДА id 10-ға тең.

Пайдаланушылардан ЖОЮ id = "10";

6. MySQL дерекқорына қарапайым DROP (кестені жою) сұраулары

TROP– кестені жоятын сұраныс.

1. Толық кестені жояды tbl_name.

DROP TABLE tbl_name;

7. MySQL деректер қорына күрделі сұраныстар

Тіпті тәжірибелі пайдаланушылар үшін де пайдалы болуы мүмкін қызықты сұраулар

Идентификаторды, атын, елді, пайдаланушылардан, әкімшілерден ТАҢДАУ ҚАЙДА TO_DAYS(NOW()) - TO_DAYS(тіркеу_күні)<= 14 AND activation != "0" ORDER BY registration_date DESC;
Бұл күрделі сұрау ТАҢДАУ бағандары идентификаторы, аты, еліКестелерде пайдаланушылар, әкімшілерҚАЙДА тіркеу_күні(күні) ескі емес 14 күндері I белсендіруТЕҢ ЕМЕС 0 , Бойынша сұрыптау тіркеу_күнікері ретпен (бірінші жаңа).

UPDATE пайдаланушылар SET age = "18+" WHERE age = (Пайдаланушылардан жасты таңдаңыз WHERE male = "er");
Жоғарыда аталғандардың мысалы келтірілген сұрау ішінде сұрау SQL тілінде. Пайдаланушылар жасын 18+ жасына дейін жаңартыңыз, мұнда жынысы ер. Мен мұндай сұрау опцияларын ұсынбаймын. Жеке тәжірибемнен айтарым, бірнеше бөлек жасаған дұрыс - олар тезірек өңделеді.

8. MySQL және PHP деректер қорына сұраныстар

PHP бетіндегі MySQL сұрауларында айнымалы мәндерді салыстырылған мәндер ретінде енгізуге болады, т.б. Бір-екі мысал

1. Кестеден барлық жазбаларды таңдайды пайдаланушылар, өріс қайда fnameайнымалының мәніне сәйкес келеді $атауы.

Пайдаланушылардан * ТАҢДАУ fname="$name";
2. Кестеде пайдаланушылар WHERE идентификаторы 3 өріс мәніне тең жасы$age айнымалысының мәніне өзгереді.

ЖАҢАЛЫҚТАР пайдаланушыларды SET age = "$age" WHERE id = "3";

Назар аударыңыз!Егер сізді басқа мысал қызықтырса, түсініктемелерде сұрақ жазыңыз!

Бұл оқулықта сіз қалай пайдалану керектігін үйренесіз MySQL UPDATE мәлімдемесісинтаксиспен және мысалдармен.

Сипаттама

MySQL UPDATE мәлімдемесідерекқордағы кестедегі бар жазбаларды жаңарту үшін пайдаланылады MySQL деректері. Орындағыңыз келетін жаңарту түріне байланысты UPDATE мәлімдемесі үшін үш синтаксис бар.

Синтаксис

MySQL-де бір кестені жаңарту кезіндегі UPDATE мәлімдемесі үшін синтаксистің қарапайым түрі:

Енді бір кестені жаңарту кезінде MySQL UPDATE мәлімдемесінің толық синтаксисі:

НЕМЕСЕ
MySQL жүйесінде бір кестені басқа кестенің деректерімен жаңарту кезінде UPDATE мәлімдемесінің синтаксисі:

НЕМЕСЕ
Бірнеше кестелерді жаңарту кезінде UPDATE мәлімдемесі үшін MySQL синтаксисі:

Параметрлер немесе аргументтер

LOW_PRIORITY - міндетті емес. LOW_PRIORITY көрсетілсе, кестеден оқылатын процестер болмайынша жаңарту кейінге қалдырылады. LOW_PRIORITY кесте деңгейіндегі құлыптауды пайдаланатын MyISAM, MEMORY және MERGE кестелерімен бірге пайдалануға болады.
ЕЛБЕРУ - міндетті емес. ЕЛДЕРІК берілген болса, жаңарту кезінде кездесетін барлық қателер еленбейді. Жолдағы жаңарту бастапқы кілтті немесе бірегей индексті бұзса, сол жолдағы жаңарту сәтсіз болады.
1-баған, 2-баған - жаңартқыңыз келетін бағандар.
өрнек1 , өрнек2 — баған1 , баған2 тағайындауға арналған жаңа мәндер. Сонымен, 1-бағанға өрнек1 мәні, 2-бағанға өрнек2 мәні тағайындалады және т.б.
WHERE шарттары - міндетті емес. Жаңарту орын алу үшін орындалуы керек шарттар.
ORDER BY BY - міндетті емес. Жаңартылатын жазбалар санын шектей отырып, жазбаларды сәйкесінше сұрыптау үшін оны LIMIT функциясымен бірге пайдалануға болады.
ШЕКТЕГІ_жол саны - міндетті емес. LIMIT көрсетілсе, ол кестеде жаңартылатын жазбалардың ең көп санын басқарады. Сан_жолдар файлында көрсетілген жазбалардың ең көп саны кестеде жаңартылады.

Бір бағанды ​​жаңарту мысалы

MySQL UPDATE сұрауының өте қарапайым мысалын қарастырайық.

Бұл MySQL мысалында UPDATE фамилия өрісін тұтынушылар кестесіндегі "Ford" етіп жаңартты, мұнда customer_id = 500.

Бірнеше бағандарды жаңарту мысалы

MySQL UPDATE мысалын қарастырайық, мұнда бір UPDATE мәлімдемесі арқылы бірнеше бағандарды жаңартуға болады.

Бірнеше бағандарды жаңартқыңыз келсе, оны баған/мән жұптарын үтірмен бөлу арқылы жасауға болады.
Бұл мысал MySQL UPDATE мәлімдемесі күй «Невада» күйіне және customer_rep мәні 23-ке жаңартылды, мұнда customer_id 200-ден жоғары.

Басқа кестенің деректерімен кестені жаңарту мысалы

MySQL-тегі басқа кестенің деректерімен кестені жаңарту жолын көрсететін UPDATE мысалын қарастырайық.

MySQL

Бұл ЖАҢАРТУ мысалы тек тұтынушы_идентификаторы 5000-нан асатын барлық жазбалар үшін тек тұтынушылар кестесін жаңартады. Жабдықтаушылар кестесіндегі жеткізуші_аты тұтынушылар кестесіндегі тұтынушы_атына сәйкес келгенде, жеткізушілер кестесіндегі қала тұтынушылар кестесінің қала өрісіне көшіріледі.

Бұл MySQL оқулығы MySQL пайдалану жолын түсіндіреді UPDATE мәлімдемесісинтаксиспен және мысалдармен.

Синтаксис

Ең қарапайым түрде MySQL-те бір кестені жаңарту кезінде UPDATE мәлімдемесінің синтаксисі:

ЖАҢАРТУ кестесінің SET баған1 = өрнек1, баған2 = өрнек2, ... ;

Дегенмен, бір кестені жаңарту кезінде MySQL UPDATE мәлімдемесінің толық синтаксисі:

ЖАҢАРТУ [ ТӨМЕН_БАСТЫҚТЫ ] [ ЕЛБЕРУ ] кесте SET баған1 = өрнек1, баған2 = өрнек2, ... ] ;

MySQL жүйесінде бір кестені басқа кестенің деректерімен жаңарту кезінде UPDATE мәлімдемесінің синтаксисі:

ЖАҢАРТУ кесте1 ОРНАТУ баған1 = (2-кестеден 1-өрнекті ТАҢДАҢЫЗ WHERE шарттары) ;

Бірнеше кестелерді жаңарту кезінде MySQL UPDATE мәлімдемесінің синтаксисі:

ЖАҢАРТУ кесте1, кесте 2, ... ОРНАТУ баған1 = өрнек1, баған2 = өрнек2, ... ҚАЙДА кесте1.баған = кесте2.баған ЖӘНЕ шарттар;

Параметрлер немесе аргументтер

LOW_PRIORITY Қосымша. LOW_PRIORITY қамтамасыз етілсе, жаңарту келесіден оқылатын процестер болмайынша кейінге қалдырылады кесте. LOW_PRIORITY кесте деңгейіндегі құлыптауды пайдаланатын MyISAM, MEMORY және MERGE кестелерімен бірге пайдаланылуы мүмкін. ЕЛДЕРІҢІЗ Қосымша. ЕЛДЕРІК берілген болса, жаңарту кезінде кездесетін барлық қателер еленбейді. Жолдағы жаңарту бастапқы кілттің немесе бірегей индекстің бұзылуына әкелсе, сол жолдағы жаңарту орындалмайды. 1-баған, 2-баған Жаңартқыңыз келетін бағандар. өрнек1, өрнек2 Тағайындалатын жаңа мәндер 1-баған, баған2. Сонымен 1-баған өрнек1, баған2мәні тағайындалады өрнек2, және тағы басқа. WHERE шарттары Қосымша. Жаңартуды орындау үшін орындалуы керек шарттар. Өрнегі бойынша РЕТТЕУ Қосымша. Жаңартылатын жазбалар санын шектеу кезінде жазбаларды сәйкесінше сұрыптау үшін оны LIMIT функциясымен бірге пайдалануға болады. ШЕКТЕМЕСІ_жол саны Қосымша. LIMIT берілген болса, ол кестеде жаңартылатын жазбалардың ең көп санын басқарады. Көбінесе жазбалар саны көрсетілген саны_жолдаркестеде жаңартылады.

Мысал - Бір бағанды ​​жаңарту

Өте қарапайым MySQL UPDATE сұрау үлгісін қарастырайық.

тұтынушыларды ЖАҢАРТУ SET фамилиясы = "Андерсон" ҚАЙДА customer_id = 5000;

Бұл MySQL UPDATE мысалы жаңартады тек"Андерсонға" тұтынушыларболатын кесте тұтынушы_идентификаторы 5000 құрайды.

Мысал - Бірнеше бағандарды жаңарту

MySQL UPDATE мысалын қарастырайық, мұнда бір UPDATE мәлімдемесі бар бірнеше бағандарды жаңартқыңыз келуі мүмкін.

ЖАҢАРТУ тұтынушылар SET күйі = "Калифорния", customer_rep = 32 WHERE customer_id > 100;

Бірнеше бағандарды жаңартқыңыз келсе, сен істе аласыңмұны баған/мән жұптарын үтірмен бөлу арқылы орындаңыз.

күй«Калифорнияға» және клиент_репдейін 32 мұнда тұтынушы_идентификаторы 100-ден жоғары.

Мысал - Басқа кестенің деректерімен кестені жаңарту

MySQL жүйесіндегі басқа кестенің деректерімен кестені жаңарту жолын көрсететін ЖАҢАЛЫҚТАУ мысалын қарастырайық.

Клиенттерді ЖАҢАРТУ
ҚАЛА ОРНАТУ = (Қаланы ТАҢДАУ
жеткізушілерден
ҚАЙДА жеткізушілер.жабдықтаушының_аты = тұтынушылар.тұтынушы_аты)
WHERE customer_id > 2000;

Бұл ЖАҢАРТУ мысалы тек жаңартатын болады тұтынушыларбарлық жазбалар үшін кесте тұтынушы_идентификаторы 2000-нан үлкен жеткізуші_атауыбастап жеткізушілеркесте сәйкес келеді тұтынушы_атыбастап тұтынушыларкесте, қалажеткізушілер кестесінен көшіріледі қалаөрісіндегі тұтынушыларкесте.

Мысал - Бірнеше кестелерді жаңарту

Бір UPDATE мәлімдемесінде бірнеше кестені қамтитын жаңартуды орындағыңыз келетін MySQL UPDATE мысалын қарастырайық.

ЖАҢАРТУ тұтынушылар, жеткізушілер SET customer.city = providers.city WHERE customers.customer_id = supplys.supplier_id;

Бұл MySQL UPDATE мәлімдемесінің мысалы жаңартады қалаөрісіндегі тұтынушыларүстелге дейін қалабастап жеткізушілерболатын кесте тұтынушы_идентификаторысәйкес келеді жеткізуші_идентификаторы.

Егер бізге MySQL-де деректерді өзгерту немесе жаңарту қажет болса, жұмыс істеу үшін SQL UPDATE пәрменін пайдалана аламыз. ,

грамматика

Төменде MySQL Sheet Data General SQL синтаксисін өзгерту үшін UPDATE пәрмені берілген:

ЖАҢАРТУ кесте_атауы SET өріс1=жаңа-мән1, өріс2=жаңа-мән2

  • Бір немесе бірнеше өрістерді бір уақытта жаңартуға болады.
  • Кез келген шартты WHERE сөйлемінде көрсетуге болады.
  • Сондай-ақ, деректерді бөлек кестеде жаңартуға болады.

Кесте жолдарында көрсетілген деректерді жаңарту қажет болғанда, INEKE өте пайдалы.

Деректерді жаңартуға арналған пәрмен жолы

Төменде деректер кестесінде көрсетілген w3big_tbl файлын пайдаланып жаңартамыз SQL командаларыИНЕКЕНІ ЖАҢАРТУ:

мысалдар

Келесі мысал деректер кестесін w3big_title w3big_id өріс мәні 3 ретінде жаңартады:

# mysql -u root -p құпия сөзі; Құпия сөзді енгізіңіз:******** mysql> w3big пайдаланыңыз; Дерекқор mysql өзгертілді> ЖАҢАРТУ w3big_tbl -> SET w3big_title=" JAVA тілін үйрену)" -> WHERE w3big_id=3; Query OK, 1 row affected (0.04 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> !}

Деректерді жаңарту үшін PHP сценарийін пайдаланыңыз

Орындау үшін mysql_query() пайдалану үшін PHP функциясы SQL мәлімдемелері, сіз UPDATE SQL мәлімдемесін пайдалана аласыз немесе INEKE қолданылмайды.

Бұл функция MySQL> пәрмен жолы SQL операторларын орындаудың әсері бірдей.

мысалдар

Келесі мысал w3big_title 3 өрісіндегі w3big_id деректерін жаңартады.

ЖАҢАРТУ синтаксисі

Бір кесте синтаксисі:
ЖАҢАРТУ shya_tabletsh
ОРНАТУ баған_атауы1=өрнек1 [,аты_ баған2=өрнек2 ...]


Көп кестелік синтаксис:

ЖАҢАРТУ кесте_атауы [, кесте_аты...] ОРНАТУ баған_атауы 1=өрнек1 [,баған_атауы2=өрнек2...]
UPDATE мәлімдемесі бар кесте жолдарының бағандарын жаңа мәндермен жаңартады. SET тармағы өзгертілетін бағандарды және оларға тағайындалатын мәндерді тізімдейді. Егер WHERE сөйлемі көрсетілсе, ол қай жолдарды жаңарту керектігін көрсетеді. Әйтпесе, кестедегі барлық жолдар жаңартылады. ORDER BY сөйлемі көрсетілсе, жолдар көрсетілген тәртіпте жаңартылады. LIMIT конструкциясы жаңартылатын жолдар санына шектеу қояды.
UPDATE мәлімдемесі келесі модификаторларды қолдайды:

  1. LOW_PRIORITY кілт сөзі көрсетілсе, ЖАҢАРТУ барлық басқа клиенттер кестені оқып болғанша кейінге қалдырылады.
  2. IGNORE кілт сөзі көрсетілсе, қайталанатын кілт қателері орын алса да жаңарту әрекеті орындалмайды. Қайшылық тудыратын жолдар жаңартылмайды.

Кестедегі бағандарды пайдалансаңыз кесте_атауыөрнектерде UPDATE бағандардың ағымдағы мәнін пайдаланады. Мысалы, келесі мәлімдемежас бағанасын бір есе арттырады:
mysql> ЖАҢАРТУ Тұлға деректері ЖИНАҒЫ жас=жас+l;
UPDATE бағдарламасындағы тапсырмалар солдан оңға қарай орындалады. Мысалы, келесі мәлімдеме жас бағанының мәнін екі еселеп, одан кейін оны бір көбейтеді: mysql> ЖАҢАЛЫҚ Тұлға деректері ЖИНАҒЫ жас=жас*2, жас=жас+л;
Бағанның мәнін оның мәніне орнатсаңыз, MySQL мұны анықтайды және жаңартылмайды.
Нөл ЕМЕС деп жарияланған бағанды ​​NULL мәніне жаңартсаңыз, ол нақты деректер түріне сәйкес әдепкі мәнге орнатылады және ескерту санауышын бір есе арттырады. Әдепкі мән сандық бағандар үшін 0, таңба бағандары үшін бос жол («») және күн мен уақыт бағандары үшін «нөл».
UPDATE нақты жаңартылған жолдар санын қайтарады. MySQL 3.22 және одан кейінгі нұсқаларында mysql_info() функциясы бағдарламалық интерфейсМЕН APIсұрауға сәйкес келетін және жаңартылған жолдар санын және ЖАҢАРТУ кезінде орын алған ескертулер санын қайтарады.
MySQL 3.23 нұсқасы бойынша сіз шектеуді пайдалана аласыз жолдар саны UPDATE ауқымын шектеу үшін.
LIMIT құрылымы келесідей жұмыс істейді:

  1. MySQL 4.0.13 нұсқасына дейін LIMIT өңделген жолдар санына шектеу болды. Оператор жаңартылған бойда шығып кетті жолдар саны WHERE шартын қанағаттандыратын жолдар.
  2. MySQL 4.0.13 болғандықтан, шектеу жолды сәйкестендіру шегі болып табылады. Оператор тапқан бойда шығып кетеді жолдар саныНақты жаңартылғанына қарамастан, WHERE шартын қанағаттандыратын жолдар.

UPDATE мәлімдемесі тармақ бойынша ретті қамтыса, жолдар осы тармақта көрсетілген ретпен жаңартылады. ORDER BY функциясын MySQL 4.0.0 бастап пайдалануға болады.
MySQL 4.0.0 нұсқасынан бастап бірден бірнеше кестеде жұмыс істейтін ЖАҢАЛЫҚТЫРУ операцияларын орындауға болады:
Элементтерді ЖАҢАРТУ, ай SET items.price=month.price WHERE items.id-ай. id/ Бұл мысал үтір операторының көмегімен ішкі біріктіруді көрсетеді, бірақ көп кестелік ЖАҢАЛЫҚТАР мынада рұқсат етілген кез келген біріктіру түрін пайдалана алады. SELECT мәлімдемесі, мысалы, LEFT JOIN.
Ескертуде!

  • Көп кестелік UPDATE мәлімдемелерінде ORDER BY немесе LIMIT мәндерін пайдалана алмайсыз.
MySQL 4.0.18 нұсқасына дейін, шын мәнінде жаңартылмаған болса да, көп кестелік ЖАҢАЛЫҚТА пайдаланылған барлық кестелерде ЖАҢАРТУ артықшылығы болуы қажет болды. MySQL 4.0.18 бастап, бағандары тек оқылатын, бірақ жаңартылмаған мұндай кестелер тек SELECT артықшылығына ие болуы керек.
Шетелдік кілт шектеулері анықталған InnoDB кестелерінде көп кестелік UPDATE мәлімдемесін пайдалансаңыз, MySQL оңтайландырғышы оларды ата-ана мен бала қарым-қатынасында көрсетілгеннен басқа ретпен өңдеуі мүмкін. Бұл жағдайда мәлімдеме сәтсіз аяқталады және транзакция кері қайтарылады. Оның орнына, бір кестені жаңартыңыз және InnoDB қозғалтқышын қамтамасыз ететін ON UPDATE сипатына сеніңіз. автоматты жаңартуқатысты кестелер.


Жоғарғы