www.webdeveloper.com
+ Reply to Thread
Results 1 to 6 of 6

Thread: mysql syntax

  1. #1
    Join Date
    Apr 2005
    Posts
    84

    mysql syntax

    I learned SQL through oracle and am wondering if maybe the syntax is just a little different. Anyway, I am trying to run a query to find all the rows that contain a certain blank field. I know that they exist and they are not null. The column is a varchar. I try a simle query,

    Code:
    select row from table where row = '';
    It does not return an error but it does not return anything. Also, my join statemet will not work.
    Code:
    select table.row from table, table2 where table.row = table2.row;
    (apparently subqueries are not available until mysql 4.1). Once again no error just no results. I thought maybe it was an issue with whitespace but it is to my understanding that in mysql if the column is a varchar that it chops off trailing whitespice. This is really frustrating me. Any help would be much appreciated.

  2. #2
    Join Date
    Apr 2005
    Location
    Bathurst, NSW, Australia
    Posts
    3,357
    Yes whitespaces are removed from the end of inputs in a varchar field.
    Have you tried to search for where row IS NULL and see if that returns the results you expected
    The answer to all these questions is Google.
    Give your thread a useful title | Webdeveloper.com Acceptable Use Policy
    Something wrong with your code? Validate first! |

    No Australian Net Censorship! The Australian government is wanting to follow in China's footsteps and "provide" nationwide Internet censorship, don't let them!

  3. #3
    Join Date
    Aug 2005
    Location
    The Garden State
    Posts
    5,634
    note that in MySQL these 2 queries have different results:

    Code:
    INSERT INTO your_table(single_field) VALUES('');
    Code:
    INSERT INTO your_table(single_field) VALUES(NULL);
    basically in MySQL the only thing that's null is "NULL".

    As for the second issue, I couldn't explain that without understanding more of your table structure (for some reason I doubt that row, table, and table2 are the real names) and what values they're comparing.
    Acceptable Use | SQL Forum FAQ | celery is tasteless | twitter

    celery is tasteless - currently needing some UI time

  4. #4
    Join Date
    Apr 2005
    Posts
    84
    I figured out the first one. There was a carriage return.

    Code:
    select * from table where row = '\r';
    Still have not figured out the join though.

    this is what I am trying. There are two tables. One is web_desc and the other is machines2. web_desc has two rows, web_desc and groupname where machiens2 has several rows web_desc being one of them. There are several web_desc for every groupname and there are several machines for every web_desc. I am trying to get all the distinct web_desc for a certain groupname.

    Code:
    select distinct web_desc.web_desc from web_desc, machines2 where web_desc.web_desc = machines2.web_desc and web_desc.groupname = 'somegroup';
    It seems kind of funny to me. I am not sure why. I guess maybe because I have not done much with joins but I think most of the ones I have done I am not outputting the same column that I am joining.

    This is how I would do a subquery
    Code:
    select web_desc from web_desc where groupname = 'somegroup' and web_desc in (select distinct web_desc from machines2);
    It is not critical to get this working because I have used php to get the results I want. It would make the code a bit simpler though.

    Here is it all in action:

    http://www.equipmentremarketing.com/catalog.php

  5. #5
    Join Date
    Aug 2005
    Location
    The Garden State
    Posts
    5,634
    for some reason, i don't think you need to join the tables, at least for this part, based on how you described it.

    I'm sure you already know this, but,
    Code:
    select web_desc from web_desc where groupname = 'somegroup'
    will give you all of the web_desc for a specific groupname. you should be able to do this also
    Code:
    select m.* from machines2 m, web_desc w WHERE w.groupname='somegroup' and m.web_desc = w.web_desc
    should give you all of the machines2 data for the particular groupnames.
    Acceptable Use | SQL Forum FAQ | celery is tasteless | twitter

    celery is tasteless - currently needing some UI time

  6. #6
    Join Date
    Apr 2005
    Posts
    84
    I found out what it was. It was the carraige return again.

    Code:
    select distinct web_desc.web_desc from web_desc, machines2 where
    groupname = 'automatics' and web_desc.web_desc = machines2.web_desc & '\r'
    Thanks for your help.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

     

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
HTML5 Development Center



Recent Articles