Try something like this:
MYSQLSTRING="/usr/local/mysql/bin/mysql -u $username -p $password -h $server
cetechnology"
RESQUERY="SELECT COUNT(*) FROM hardware_assets WHERE
ethernet_address='$ethernet_address'"
RESULT=`echo "$RESQUERY;" | $MYSQLSTRING`
INSERTQUERY="INSERT INTO hardware_assets (ethernet_address) VALUES ($ethernet_address)"
UPDATEQUERY="UPDATE hardware_assets SET Operating_system='10.3.3'"
if [ $result -eq 0 ]; then
echo "$INSERTQUERY;" | $MYSQLSTRING
else
echo "$UPDATEQUERY;" | $MYSQLSTRING
fi
Thanks,
Ryan Yagatich
,_____________________________________________________,
\ Ryan Yagatich [EMAIL PROTECTED] \
/ Pantek Incorporated (877) LINUX-FIX /
\ http://www.pantek.com/security (440) 519-1802 \
/ Are your networks secure? Are you certain? /
\___F49F3365CFC4F2613AD204C58E50C1AD73F23DC722666BD4___\
On Mon, 9 Feb 2004, 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]