sql >> Databáze >  >> RDS >> Mysql

Jak mohu uložit pole booleovských hodnot v databázi MySql?

Pokud hledáte způsob, jak to provést způsobem, který lze prohledávat, pak ne.

Několik vyhledávacích metod (zahrnujících více než 1 sloupec a/nebo tabulku):

  • Použijte spoustu SET sloupců. Jste omezeni na 64 položek (zapnuto/vypnuto) v sadě, ale pravděpodobně dokážete přijít na způsob, jak je seskupit.
  • Použijte 3 tabulky:Items (id, ...), FlagNames(id, name) a kontingenční tabulku ItemFlags(item_id, flag_id). Poté se můžete dotazovat na položky s připojení .

Pokud nepotřebujete, aby bylo možné je prohledávat, pak vše, co potřebujete, je metoda serializace vašich dat před jejich vložením do databáze a jejich zrušení, když je vytáhnete, a poté použijte char nebo varchar sloupec.

  • Používejte zařízení vestavěná do vašeho jazyka (serializace/unserializace PHP).
  • Spojte dohromady řadu znaků „y“ a „n“.
  • Před voláním databáze MySQL zabalte své hodnoty do řetězce (8 bitů na znak) v klientovi a rozbalte je při načítání dat z databáze. Toto je nejúčinnější mechanismus ukládání (pokud jsou všechny řádky stejné, použijte char[x], nikoli varchar[x]), na úkor toho, že data nelze prohledávat a je o něco komplikovanější kód.


  1. pokus o dekódování dat (export Abs do MySQL)

  2. Jak zkontrolovat velikost databáze MySQL v Linuxu

  3. Jak vyprázdním vyrovnávací paměť PRINT v TSQL?

  4. PHP MYSQL -> Zobrazit data uložená jako typ 'datum' z databáze MYSQL