09-10-2008
passing regular expressions to mysql via $1
hi, unix and mysql gurus.
i'm trying to create a simple ksh script that accesses the mysql system database table, user. the idea is that the user can call the script with a regular expression to see some users, or call it without any options to see all users. this is what i have so far:
*****************************************************
mysql -BCNnqs --disable-pager -u system -pmanager << EOJ
use mysql;
set @regex = '$1';
select user from user where user REGEXP @regex;
quit
EOJ
*****************************************************
the problem, of course, is that if $1 is null, i get this error:
==> ERROR 1139 (42000) at line 8: Got error 'empty (sub)expression' from regexp
i changed my set statement to this, but it didn't work:
*****************************************************
set @regex = if(@regex is null, '^[a-z]','$1');
*****************************************************
does anyone know what i'm doing wrong? i'd appreciate your input. thanks.
10 More Discussions You Might Find Interesting
1. Programming
How do I use the regular expressions in c++? (2 Replies)
Discussion started by: szzz
2 Replies
2. Shell Programming and Scripting
Hi,
can anyone advise me how to shorten this:
if || ; then
I tried but it dosent seem to work, whats the correct way.
Cheers (4 Replies)
Discussion started by: jack1981
4 Replies
3. Shell Programming and Scripting
I have following content in the file
CancelPolicyMultiLingual3=U|PC3|EN
RestaurantInfoCode1=U|restID1|1
.....
I am trying to use following matching extression
\|(+)
to get this
PC3|EN
restID1|1
Obviously it does not work.
Any ideas? (13 Replies)
Discussion started by: arushunter
13 Replies
4. UNIX for Dummies Questions & Answers
how to find for a file whose name has all characters in uppercase after 'project'?
I tried this:
find . -name 'project**.pdf'
./projectABC.pdf
./projectABC123.pdf
I want only ./projectABC.pdf
What is the regular expression that correponds to "all characters are capital"?
thanks (8 Replies)
Discussion started by: melanie_pfefer
8 Replies
5. UNIX for Advanced & Expert Users
Hi,
below is a piece of code written by my predecessor at work.
I'm kind of a newbie and am trying to figure out all the regular expressions in this piece of code.
It is really a tough time for me to figure out all the regular expressions.
Please shed some light on the regular expressions... (3 Replies)
Discussion started by: ramky79
3 Replies
6. Shell Programming and Scripting
Hi,
In ksh, I am trying to compare folder names having -141- in it's name.
e.g.: 4567-141-8098 should match this expression '*-141-*'
but, -141-2354 should fail when compared with '*-141-*'
simlarly, abc should fail when compared with '*-141-*'
I tried multiple things but nevertheless,... (5 Replies)
Discussion started by: jidsh
5 Replies
7. Shell Programming and Scripting
need a regex that matches when a number has a zero (0) at the end of it
so like
10
20
120
30
330
1000
and so on (6 Replies)
Discussion started by: linuxkid
6 Replies
8. Shell Programming and Scripting
I have a file that I'm trying to find all the cases of phone number extensions and deleting them. So input file looks like:
abc
x93825
def
13234
x52673
hello
output looks like:
abc
def
13234
hello
Basically delete lines that have 5 numbers following "x". I tried: x\(4) but it... (7 Replies)
Discussion started by: pxalpine
7 Replies
9. Shell Programming and Scripting
Hi
Ilove unix and alwyas trying to to learn unix,but i am weak in using regular expressions.can you please give me a littel brief discription that how can i understand them and how to use .your response could lead a great hand in my unix love. (1 Reply)
Discussion started by: manoj attri
1 Replies
10. Shell Programming and Scripting
I need to pick a part of string lets stay started with specific character and end with specific character to replace using sed command
the line is like this:my audio book 71-skhdfon1dufgjhgf8.wav'
I want to move the characters beginning with - end before.
I have different files with random... (2 Replies)
Discussion started by: XP_2600
2 Replies
LEARN ABOUT CENTOS
mysql_fix_privilege_tables
MYSQL_FIX_PRIVILE(1) MySQL Database System MYSQL_FIX_PRIVILE(1)
NAME
mysql_fix_privilege_tables - upgrade MySQL system tables
SYNOPSIS
mysql_fix_privilege_tables --password=root_password
DESCRIPTION
Note
In MySQL 5.1.7, mysql_fix_privilege_tables was superseded by mysql_upgrade, which should be used instead. See mysql_upgrade(1).
Some releases of MySQL introduce changes to the structure of the system tables in the mysql database to add new privileges or support new
features. When you update to a new version of MySQL, you should update your system tables as well to make sure that their structure is up
to date. Otherwise, there might be capabilities that you cannot take advantage of.
mysql_fix_privilege_tables is an older script that previously was used to uprade the system tables in the mysql database after a MySQL
upgrade.
Before running mysql_fix_privilege_tables, make a backup of your mysql database.
On Unix or Unix-like systems, update the system tables by running the mysql_fix_privilege_tables script:
shell> mysql_fix_privilege_tables
You must run this script while the server is running. It attempts to connect to the server running on the local host as root. If your root
account requires a password, indicate the password on the command line like this:
shell> mysql_fix_privilege_tables --password=root_password
The mysql_fix_privilege_tables script performs any actions necessary to convert your system tables to the current format. You might see
some Duplicate column name warnings as it runs; you can ignore them.
After running the script, stop the server and restart it so that any changes made to the system tables take effect.
On Windows systems, MySQL distributions include a mysql_fix_privilege_tables.sql SQL script that you can run using the mysql client. For
example, if your MySQL installation is located at C:Program FilesMySQLMySQL Server 5.1, the commands look like this:
C:> cd "C:Program FilesMySQLMySQL Server 5.1"
C:> binmysql -u root -p mysql
mysql> SOURCE share/mysql_fix_privilege_tables.sql
Note
Prior to version 5.1.17, the mysql_fix_privilege_tables.sql script is found in the scripts directory.
The mysql command will prompt you for the root password; enter it when prompted.
If your installation is located in some other directory, adjust the path names appropriately.
As with the Unix procedure, you might see some Duplicate column name warnings as mysql processes the statements in the
mysql_fix_privilege_tables.sql script; you can ignore them.
After running the script, stop the server and restart it.
COPYRIGHT
Copyright 2007-2008 MySQL AB, 2008-2010 Sun Microsystems, Inc.
This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as
published by the Free Software Foundation; version 2 of the License.
This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with the program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA or see http://www.gnu.org/licenses/.
SEE ALSO
For more information, please refer to the MySQL Reference Manual, which may already be installed locally and which is also available online
at http://dev.mysql.com/doc/.
AUTHOR
Sun Microsystems, Inc. (http://www.mysql.com/).
MySQL 5.1 04/06/2010 MYSQL_FIX_PRIVILE(1)