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)
-
MySQLを使用するサーバー上のすべてのデータベースのすべてのテーブルでSELECTを付与するにはどうすればよいですか?
このために、以下の構文のようにGRANTSELECTステートメントを使用できます- GRANT SELECT ON *.* TO 'yourUserName'@'yourHostName'; まず、すべてのユーザー名とホストを一覧表示します- mysql> select user,host from mysql.user; これにより、次の出力が生成されます- +------------------+-----------+ | user |
-
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