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]

Reply via email to