MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

PHPとMySQLで「ブール」値を処理する方法は?


MySQLバージョン8.0.12を使用しています。まず、MySQLのバージョンを確認しましょう:

mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.12    |
+-----------+
1 row in set (0.00 sec)

MySQLでブール値を処理するには、BOOL、BOOLEAN、またはTINYINT(1)を使用できます。 BOOLまたはBOOLEANを使用する場合、MySQLはそれを内部でTINYINT(1)に変換します。

BOOLまたはBOOLEANデータ型では、trueリテラルを使用すると、PHP / C / C ++言語のように、MySQLはそれを1として表し、falseリテラルは0として表します。

MySQLがBOOLまたはBOOLEANをTINYINT(1)に変換することを証明するために、BOOLEANまたはBOOL列を持つテーブルを作成しましょう。

ここでは、列BOOLEANを持つテーブルを作成しています。テーブルを作成するためのクエリは次のとおりです。

mysql> create table BoolOrBooleanOrTinyintDemo
   -> (
   -> Id int NOT NULL AUTO_INCREMENT,
   -> isvalidAddress BOOLEAN,
   -> PRIMARY KEY(Id)
   -> );
Query OK, 0 rows affected (0.74 sec)

次に、SHOW CREATEコマンドを使用して、上記のテーブルのDDLを確認します。クエリは次のとおりです。

mysql> show create table BoolOrBooleanOrTinyintDemo\G

出力は次のとおりです。

*************************** 1. row ***************************
Table: BoolOrBooleanOrTinyintDemo
Create Table: CREATE TABLE `boolorbooleanortinyintdemo` (
   `Id` int(11) NOT NULL AUTO_INCREMENT,
   `isvalidAddress` tinyint(1) DEFAULT NULL,
   PRIMARY KEY (`Id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
1 row in set (0.00 sec)

isvalidAddress列を見てください。データ型BOOLEANは内部でtinyint(1)に変換されます。これで、trueリテラルが1で表され、falseリテラルが0で表されることを確認できます。trueおよびfalseリテラル値を含むいくつかのレコードをテーブルに挿入します。レコードを挿入するためのクエリは次のとおりです。

mysql> insert into BoolOrBooleanOrTinyintDemo(isvalidAddress) values(true);
Query OK, 1 row affected (0.43 sec)
mysql> insert into BoolOrBooleanOrTinyintDemo(isvalidAddress) values(false);
Query OK, 1 row affected (0.17 sec)
mysql> insert into BoolOrBooleanOrTinyintDemo(isvalidAddress) values(true);
Query OK, 1 row affected (0.29 sec)
mysql> insert into BoolOrBooleanOrTinyintDemo(isvalidAddress) values(false);
Query OK, 1 row affected (0.12 sec)
mysql> insert into BoolOrBooleanOrTinyintDemo(isvalidAddress) values(true);
Query OK, 1 row affected (0.33 sec)

selectステートメントを使用して、テーブルのすべてのレコードを表示します。すべてのレコードを表示するためのクエリは次のとおりです。

mysql> select *from BoolOrBooleanOrTinyintDemo;

出力は次のとおりです。

+----+----------------+
| Id | isvalidAddress |
+----+----------------+
|  1 |              1 |
|  2 |              0 |
|  3 |              1 |
|  4 |              0 |
|  5 |              1 |
+----+----------------+
5 rows in set (0.00 sec)

上記のサンプル出力を見てください。trueは1を表し、falseは0を表します。

PHPでは、trueを使用すると、1として表され、falseは0として表されます。

次のPHPコードを見てください。ここでは、変数「isValidAddress」を設定しました。値は1です。これは、if条件がtrueを評価し、ifステートメントの本体のみを実行することを意味します。次のコードを確認してください:

$isValidAddress = 1;
if($isValidAddress)
{
   echo 'true is represented as ';
   echo ($isValidAddress);
}
else
{
   echo 'false is represented as ';
   echo ($isValidAddress);
}

コードのスナップショットは次のとおりです。

PHPとMySQLで「ブール」値を処理する方法は?

出力は次のとおりです。

PHPとMySQLで「ブール」値を処理する方法は?

変数「isValidAddress」を値0に変更すると、if条件がfalseと評価され、elseステートメントの本体のみが実行されます。コードは次のとおりです。

$isValidAddress=0;
if($isValidAddress)
{
   echo 'true is represented as ';
   echo ($isValidAddress);
}
else
{
   echo 'false is represented as ';
   echo ($isValidAddress);
}

コードのスナップショットは次のとおりです。

PHPとMySQLで「ブール」値を処理する方法は?

出力は次のとおりです。

PHPとMySQLで「ブール」値を処理する方法は?


  1. 単一のMySQLクエリで列に複数の値を挿入するにはどうすればよいですか?

    列に複数の値を挿入するための構文は次のとおりです- insert into yourTableName values(yourValue1),(yourValue2),..........N; 上記の構文を理解するために、テーブルを作成しましょう- mysql> create table DemoTable2022    -> (    -> Department varchar(100)    -> ); Query OK, 0 rows affected (0.49 sec) 挿入コマンド-を使用して、

  2. PHPでnull値を削除する方法は?

    PHPでnull値を削除するには、array_filter()を使用します。配列値をフィルタリングします。以下が私たちの配列だとしましょう- $studentDetails = array("firstName" => "John",  "lastName"=> null); echo "The original value is=";print_r($studentDetails); array_filter()でフィルタリングしましょう- $result = array_filter($