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

MySQLを使用して、ある単語の後に大文字が付いた名前のすべてのデータベースをフェッチするにはどうすればよいですか?


これには、正規表現を使用します。構文は次のとおりです-

select * from information_schema.schemata WHERE SCHEMA_NAME REGEXP '^yourValue_+[A-Z]';

いくつかのデータベースを作成しましょう-

mysql> create database bank_APP1;
Query OK, 1 row affected (0.00 sec)
mysql> create database bank_APP2;
Query OK, 1 row affected (0.00 sec)
mysql> create database bank_APP3;
Query OK, 1 row affected (0.00 sec)

これは、単語の後に大文字が含まれるすべてのデータベースを取得するためのクエリです-

mysql> select * from information_schema.schemata
   WHERE SCHEMA_NAME REGEXP '^bank_+[A-Z]';

これにより、次の出力が生成されます-

+--------------+-------------+----------------------------+------------------------+----------+
| CATALOG_NAME | SCHEMA_NAME | DEFAULT_CHARACTER_SET_NAME | DEFAULT_COLLATION_NAME | SQL_PATH |
+--------------+-------------+----------------------------+------------------------+----------+
| def          | bank_app1   | utf8                       | utf8_unicode_ci        | NULL     |
| def          | bank_app2   | utf8                       | utf8_unicode_ci        | NULL     |
| def          | bank_app3   | utf8                       | utf8_unicode_ci        | NULL     |
+--------------+-------------+----------------------------+------------------------+----------+
3 rows in set (0.00 sec)

  1. MySQLを使用するサーバー上のすべてのデータベースのすべてのテーブルでSELECTを付与するにはどうすればよいですか?

    このために、以下の構文のようにGRANTSELECTステートメントを使用できます- GRANT SELECT ON *.* TO 'yourUserName'@'yourHostName'; まず、すべてのユーザー名とホストを一覧表示します- mysql> select user,host from mysql.user; これにより、次の出力が生成されます- +------------------+-----------+ | user             |    

  2. MySQL Javaの値の場合、WHERE条件でPreparedステートメントを正しく使用する

    このために、JavaでPrepareStatementを使用できます。以下は構文です- String anyVariableName="select yourColumnName from yourTableName where name = ?"; PreparedStatement ps = (PreparedStatement) con.prepareStatement(yourVariableName); ps.setString(yourColumnIndex, yourValue); テーブルを作成しましょう- mysql> create table d