When I run this, it always updates the record, not matter what the value for $ethernet_address is. I have tested this by changing the line under else to echo "Update" Every time the script is run, it comes back with update.
I then we back and commented out the whole if/else statement and had only the line for RESULT=, and then did echo $RESULT. It returns nothing. Not a 0 or a 1, nothing. > From: gerald_clark <[EMAIL PROTECTED]> > Date: Mon, 09 Feb 2004 14:28:27 -0600 > To: Mike Tuller <[EMAIL PROTECTED]> > Cc: MySql List <[EMAIL PROTECTED]> > Subject: Re: There has to be a way to do this > > This is NOT a script that can run under mysql. > It is a bash script that calls mysql. > > MYSQL="/usr/local/mysql/bin/mysql --user=$username --password=$password > --host=$server cetechnology" > > RESULT=`echo "select count(*) from hardware_assets where > ethernet_address='$ethernet_address'" | $MYSQL > if [ "$RESULT" = "0" ] ; then > echo "INSERT INTO hardware_assets (ethernet_address) VALUES > ($ethernet_address);" |$MYSQL > else > echo "UPDATE hardware_assets SET operating_system='10.3.3';" | $MYSQL > fi > > > Mike Tuller wrote: > >> I changed my script to this: >> >> /usr/local/mysql/bin/mysql --user=$username --password=$password >> --host=$server >> >> RESULT=`echo "select count(*) from hardware_assets where >> ethernet_address='$ethernet_address'" | cetechnology' >> if [ "$RESULT" = "0" ] ; then >> echo "INSERT INTO hardware_assets (ethernet_address) VALUES >> ($ethernet_address);" >> else >> echo "UPDATE hardware_assets SET operating_system='10.3.3';" >> fi >> >> Where cetechnology is the database. All the variables are set. >> >> When I run this, it starts the mysql client application, with the mysql> >> prompt. Nothing is inserted or updated in the database though. >> >> This is the same problem I had when I tried to do it this way, but I am not >> knowledgeable in shell scripting yet to know what I am doing wrong. >> >> >> >> >> >> >>> From: gerald_clark <[EMAIL PROTECTED]> >>> Date: Mon, 09 Feb 2004 11:11:24 -0600 >>> To: Mike Tuller <[EMAIL PROTECTED]> >>> Cc: MySql List <[EMAIL PROTECTED]> >>> Subject: Re: There has to be a way to do this >>> >>> IF works on the selections not on the query. >>> Select IF(lastname='clark','Correct',''Incorrect'), firstname from >>> namefile; >>> >>> You need to do the checking in your script. >>> For example in bash: >>> RESULT=`echo "select count(*) from manefile where lastname='clark'" | >>> mysql database` >>> if [ "$RESULT" = "0" ] ; then >>> echo "insert into namefile ....... >>> else >>> echo "update namefile ...... >>> fi >>> >>> >>> Mike Tuller wrote: >>> >>> >>> >>>> I have posted this question a few times, and have not seen the answer that >>>> I >>>> need. >>>> >>>> I have a shell script, that gathers information from systems, and I want >>>> that info to be entered into a database. I want it to check first to see if >>>> the data is already entered, and if not, add it. If it has already been >>>> entered, then update the record. >>>> >>>> I would think that some type of if/else statement would work, but I can't >>>> get the IF statement http://www.mysql.com/doc/en/IF_Statement.html to work >>>> correctly in MySql. >>>> >>>> Here is what I have: >>>> >>>> "IF SELECT * FROM hardware_assets WHERE >>>> ethernet_address='$ethernet_address' >>>> IS NULL\ >>>> THEN INSERT into hardware_assets (ethernet_address) VALUES >>>> ($ethernet_address)\ >>>> ELSE\ >>>> UPDATE hardware_assets SET operating_system='10.3.3'\ >>>> END IF;" >>>> >>>> I get back that I have an error in my SQL syntax. $ethernet_address is set, >>>> so that is not my problem. >>>> >>>> Does anyone know a way to go about this in SQL, or in a shell script? I >>>> don't want to do it in Perl or PHP. >>>> >>>> >>>> Thanks, >>>> Mike >>>> >>>> >>>> >>>> >>>> >>>> >>> >>> -- >>> MySQL General Mailing List >>> For list archives: http://lists.mysql.com/mysql >>> To unsubscribe: >>> http://lists.mysql.com/[EMAIL PROTECTED] >>> >>> >>> >> >> >> >> > > -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]