Cookie ã®äœ¿çšã«ã€ããŠ.æ¬ãµã€ãã§ã¯ãåºæ¬æ©èœã®æäŸã«å¿ èŠãªå¿ é Cookie ã䜿çšããŠããŸããããã«ãåæããã ããå Žåã«éããã¢ã¯ã»ã¹è§£æ Cookie ãå©çšããŠå©çšç¶æ³ãææ¡ãããµãŒãã¹æ¹åã«åœ¹ç«ãŠãŸãã詳ãã㯠.
ãã®ããŒã«ã¯äœ¿ããããã£ãã§ããïŒ
ãã£ãŒãããã¯ã¯æ¹åã«åœ¹ç«ã¡ãŸã
æŽçæä¹±SQL代ç 䞺è§èæ ŒåŒïŒæåå¯è¯»æ§
SQL å§çž®ã§ã¯åŒçšç¬Šå ã®æååãå®è¡å¯èœãªã³ã¡ã³ãããã³ããæå³ã«åœ±é¿ããæ¹è¡ãä¿æããŸããMySQL/MariaDB ã¯æšæºã®ããã¯ã¹ã©ãã·ã¥ãšã¹ã±ãŒããåæãšãããããSQL_MODE ã倿Žããæã¯ç¢ºèªããŠãã ããã
æŠèŠ
解決ã§ãã課é¡ãåŠçã®ä»çµã¿ãããŒã¿ã®ç¯å²ã確èªã§ããŸãã
SQLãã©ãŒããã¿ãŒã¯ãå ¥åããSQLããã¹ãã®ç©ºçœãæ¹è¡ãåäžããèªèãããããŒã¯ãŒãã®å€§æåã»å°æåãæŽããããŒã«ã§ãã1è¡ã«è©°ãŸã£ãSELECTæããSELECTãFROMãJOINãWHEREãORDER BYãªã©ã®ãŸãšãŸãã远ãããã圢ã«ã§ããŸããããŒã¿ããŒã¹ãžæ¥ç¶ããŠæãå®è¡ãããã衚ãåã®å®çŸ©ã調ã¹ããããæ©èœã§ã¯ãããŸããããŸããæ¡ä»¶åŒãçµåæ¡ä»¶ã®æå³ã倿ããŠæžãæãããã®ã§ããããŸããã
ãããŒã¯ãŒããã¯SELECTãWHEREã®ããã«SQLã®æ§æã§åœ¹å²ãæã€èªããèå¥åãã¯è¡šåãååãªã©ã®ååã§ããããŒã¯ãŒãã®è¡šèšãUpperïŒLowerã«ããŠããSQLæ¬æå šäœãåçŽã«å€§æåã»å°æåãžå€æããããã§ã¯ãããŸãããæååãèå¥åã®åŒçšç¬Šã¯ããŒã¿ããŒã¹ããšã«æ±ããç°ãªããããå¯Ÿè±¡ã®æ¹èšãéžãã§ããçµæã確èªããŠãã ããã
| èšå® | éžæè¢ | çµæãžã®åœ±é¿ |
|---|---|---|
| SQLæ¹èš | Standard SQLãMySQLãPostgreSQLãMariaDBãSQLite | æ§æãããŒã¯ãŒãã®èªèã«äœ¿ãåºæºã§ãã察象ããŒã¿ããŒã¹ã«åãããŸãã |
| ã€ã³ãã³ããµã€ãº | 2ã4ã8ã¹ããŒã¹ | åäžãã®å¹ ãæå®ããŸããåæå€ã¯2ã¹ããŒã¹ã§ãã |
| ã€ã³ãã³ãã®çš®é¡ | ã¹ããŒã¹ãã¿ã | éå±€ã瀺ãåäžãæåãéžã³ãŸãã |
| ããŒã¯ãŒãã®å€§æåã»å°æå | UpperãLowerãPreserve | èªèãããSQLããŒã¯ãŒãã®è¡šèšãéžã³ãŸããåæå€ã¯Upperã§ãã |
æ¹èšã«ãã£ãŠãäºçŽèªãšååã®å¢çãåŒçšç¬Šã®æå³ãéããŸããããšãã°PostgreSQLã§ã¯äºéåŒçšç¬Šã§å²ãŸããååã¯åŒçšèå¥åãšããŠæ±ãããMySQLã§ã¯äºçŽèªãååã«äœ¿ãéã«åŒçšãå¿ èŠã«ãªãå ŽåããããŸããæžåŒãæããç®çã§ããåŒçšç¬Šãå«ãæã¯å ã®æå³ãä¿ãŠãŠããã確èªããŸããããPostgreSQLã®å奿§é ãMySQLã®äºçŽèªãSQLiteã®ããŒã¯ãŒããåç §ã§ããŸãã
äœ¿ãæ¹
æé ã«æ²¿ã£ãŠæäœããäŸã䜿ã£ãŠå ¥åãšçµæã確èªããŸãã
Standard SQLãMySQLãPostgreSQLãMariaDBãSQLiteãããSQLã䜿ãç°å¢ã«åããã®ãéžã³ãŸããæ¹èšãäžæãªãšãã¯ãå ã«æ¥ç¶å ã®èšå®ãã¯ãšãªã®äœæå ã確èªããŠãã ããã
å ¥åæ¬ã«ããã¹ãã貌ãä»ããŸãããäŸããããµã³ãã«ãèªã¿èŸŒãã§ãåèšå®ã®éãã確ãããããšãã§ããŸããå ¥åãéžæãå€ãããšçµæãæŽæ°ãããŸãã
ã€ã³ãã³ãå¹ ãšã¹ããŒã¹ïŒã¿ããããŒã¯ãŒã衚èšãéžã³ãŸããPreserveã¯ããŒã¯ãŒãã®è¡šèšãã§ããã ãä¿ã€èšå®ã§ãæ¹è¡ã空çœãŸã§å ã©ããã«åºå®ããèšå®ã§ã¯ãããŸããã
å
¥åãšåºåãèŠæ¯ã¹ãåŒçšç¬Šãæååãã³ã¡ã³ãããã¬ãŒã¹ãã«ããŒãWHEREãJOINã®æ¡ä»¶ãæå³ãããŸãŸã確èªããŸããå¿
èŠãªãçµæãã³ããŒããããformatted.sqlãšããŠããŠã³ããŒãããŸãã
ããšãã°ãSELECT id,name FROM users WHERE active=1;ã®ãããªçãSQLããå¥ã®åºåãã空çœãèŠãããæŽçã§ããŸããå
·äœçãªæ¹è¡äœçœ®ã¯SQLã®æ§é ãéžæããæ¹èšã«ãã£ãŠå€ãããããåºåããã®ãŸãŸå®è¡å¯èœãªå®ææãšã¿ãªãããå
ã®ããã¹ããšç
§åããŠãã ããã
掻çšäŸ
ä»äºãæ¥åžžã®æµãã®äžã§ã®æŽ»ç𿹿³ã玹ä»ããŸãã
ãã°ãã¡ãã»ãŒãžããååŸããSQLãæŽããŠãããšãã¬ãã¥ãŒæ åœè ãSELECTé ç®ãçµåãçµãèŸŒã¿æ¡ä»¶ã远ãããããªããŸããããŒã ã§æ¹èšãšã€ã³ãã³ããåãããŠããå ±æãããšãæžåŒã®å·®åãæãããããªããŸãã
ãã£ãŒã«ããå€ãæããµãã¯ãšãªãå«ãæãå¥ããšã«èŠæž¡ãã調æ»å¯Ÿè±¡ã®æ¡ä»¶ã確èªããéã«äœ¿ããŸãããã©ãŒãããã¯èªã¿ããããæŽããã ãã§ãå®è¡èšç»ã®åæãã¯ãšãªã®é«éåã¯è¡ããŸããã
çãæãå ¥åããããŒã¯ãŒã衚èšãåäžããå€ããŠèŠæ¯ã¹ããšãSQLã®å¥ãã©ã®ããã«äžŠã¶ãã確èªã§ããŸããæ§æãããŒã¿ããŒã¹åºæã®èŠåã¯ãå©çšããDBMSã®è³æãšåãããŠåŠç¿ããŠãã ããã
Q&A
ããããçåãè¿·ããããç¹ããŸãšããŠç¢ºèªã§ããŸãã
æ¹èšã®éžæè¢ã«å«ãŸããŠããã®ã¯Standard SQLãMySQLãPostgreSQLãMariaDBãSQLiteã§ããä»ã®DBMSåãSQLã¯ãåºæã®æ§æãåŒçšã«ãŒã«ãæ£ããæ±ããããšã¯éããŸãããæšæºçãªå¥ã ãã®æã§ãã察象ç°å¢ã§å¿ ã確èªããŠãã ããã
ããããæŽåœ¢çµæã¯ããŒã¿ããŒã¹ã§ã®è§£æãå®è¡ã蚌æããŸããã衚ã»åã®ååšãåãæš©éãå¶çŽãæ¡ä»¶ã®åŠ¥åœæ§ãªã©ã¯ç¢ºèªããªããããå®è¡åã®æ€èšŒã¯æ¥ç¶å ã®DBMSã§è¡ããŸãã
ããŒã¯ãŒããåŒçšç¬Šãèå¥åã®æ±ããªã©ã«DBMSããšã®å·®ãããããã§ãã誀ã£ãæ¹èšã§ã¯æ¹è¡äœçœ®ãäžèªç¶ã«ãªã£ãããç¹æ®ãªæ§æãåŠçã§ããªãã£ããããå¯èœæ§ããããŸãã
Preserveã¯èªèãããããŒã¯ãŒãã®å€§æåã»å°æåãä¿ã€ããã®èšå®ã§ããåäžããæ¹è¡ã空çœã¯èªã¿ãããããããã«æŽããããã®ã§ãæååäœã§å ã®åœ¢ãæ®ãããå Žåã«ã¯æŽåœ¢ããªãã§ãã ããã
泚æ
å©çšç¯å²ãçµæã®å¶éãå¿ èŠãªæ³šæç¹ãäºåã«ç¢ºèªããŸãã
SQLã®æŽåœ¢ã¯ãæ§ææ€èšŒãå®è¡ãã¬ãã¥ãŒãæ§èœåæã®ä»£ããã«ã¯ãªããŸãããåºåãããŒã¿ããŒã¹ã§äœ¿ãåã«ãå¿ ãå ã®SQLãšç §åããŠãã ããã
é¢é£
é¢é£ããŒã«ãç¹éãå©çšå¯èœãªAPIãæ¢ããŸãã