Counting rows in a mysql query

Hey
How do i count the rows in a mysql query?
I have tried to make a while loop (as you can see in the code), but if i make this while loop i cant use the same query to get the database data.
Doesnt java have a function that counts the rows?
public DefaultTableModel searchCategory(String searchString){
        String returnString = "";
        try{
            RS = connection.executeQuery("SELECT name, price, products_type_id FROM katrinelund_products WHERE products_type_id = (SELECT products_type_id FROM katrinelund_products_type WHERE name LIKE '%"+searchString+"%')");
            int rowCount = 0;
            while(RS.next()){
                rowCount++;
            String[] columnNames = {"Navn", "Pris", "Produkt type"};
            Object[][] data = new Object[rowCount][columnNames.length];
            int i=0;
            while(RS.next()){
                data[0] = RS.getString(1);
data[i][1] = RS.getString(2);
data[i][2] = RS.getString(3);
i++;
table = new DefaultTableModel(data, columnNames);
catch(SQLException E){
System.out.println("Der skete en fejl" + E.getMessage());
return table;
}NOTE: the connection to the database is stored in the connection variable.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

yawmark wrote:
The SELECT COUNT(*) cannot be fetched among other data, so in this case you must send two queries. Then there is much simplier to use the method I mentioned above.While it may be "simpler", it's not supported in a non-trivial number of drivers. So there are a number of situations in which your "simple" solution will not work. I assume you've been fortunate enough to work only with drivers that do support the functionality you recommend, but I can also only assume that you haven't had much experience beyond that.I apologize for my spelling errors. I'm not a native englishman.
yawmark wrote:
Knowing the amount of rows a resultset returns can be interesting if you're making some kind of search engine. Knowing the amount of data returned for a particular query can certainly be useful, and we've presented some reasonable means of obtaining that kind of information that don't rely on potentially unsupported features.
I don't now about unsupported features. The ResultSet is (as far as I know) not tied to a specific SQL database. This, and all of it's methods is in the java.sql.ResultSet interface. Then all classes implementing this must have these methods. Am I not right?
yawmark wrote:
Stop dealing with however it's necessary or not.Sorry, partner, but you don't get to decide what I post here.
This guy wants this problem to be solved, so apparentley he has a usage for it...And what you're apparently failing notice is that there are other solutions (better, in many cases) than the solution which you posted. Don't make the mistake of thinking your suggestion is golden. It isn't. Besides, there are no shortage of beginners that want the "problem" of i = i++ to be "solved"; no doubt they think they have an apparent usage for it, too. ~I'm well aware of that you decide on your own what to post. I just don't see how it is necessary to discuss the matter of necessity in this case. The problem still remains.
I don't want any fuss here. I'm just so sick of everyone who yells "you don't need to know that". I haven't decried any of the other solutions (at least it wasn't my point), all I said was that it's not a good idea to send multiple queries to the database when you already have the answer three rows of code away. In some rare situations, the data may have been changed during the short period of time as the database is finished with the first query before you send the next one.

Similar Messages

  • How to get count of last 30 days and total of count of rows in a single query

    Hi All,
    My requirement is to write a sql query with the following requirement
    I have a table TEST which has 6500 rows out of which the created date > 30 which means records from last 30 days are like 60.So if i write a query like this 
    Select Count(*) from TEST where CreatedDdate > 30
    This one would give me last 30 days count but in the same query i also want the count(*) which would be 6500
    So my output should be one row with 6500 in one column and 65 in second column
    Can someone please help me on how to do this?
    If you have any questions or if i am unclear please let me know.
    Thanks

    declare @sdate table(sdate date)
    insert into @sdate
    values('20150418'),('20140418')
    Select Count(*) as [total],count(case when(datediff(day,sdate,getdate()))<30 then 1 else null end) as [Last30days] from @sdate
    Hope it Helps!!

  • Is it possible to count the rows returned from a query?

    Hello,
    When using JDBC is there anyway of finding out the number of
    rows returned from a query before actually getting each row?
    In Forms 4.5 you can use the count_query function, does anyone
    know of an equivalent function or work around in JDBC and/or
    SQLJ?
    Thanks.
    null

    Pasi Hmlinen (guest) wrote:
    : Try
    : SELECT COUNT(*) FROM the_table WHERE <conditions>;
    : Hope this helps,
    : Pasi
    Thanks for the advice, I'm currently using SELECT COUNT(*) but
    I'm looking for a more efficient way of doing it. If I SELECT
    COUNT each time then I have to prepare and execute a SQL
    statement each time. What I want to do it execute a single SQL
    statement to return my results and somehow find out the number
    of rows in the resultset without having to go back to the
    database.
    Gethin.
    null

  • Count Rows before Excecution of BEx Query

    Hi all,
    I would appreciate it if someone could help me in the following matter:
    I have a BEx query with a large number of rows / records  (sometime about more than 100.000 rows) depending on the selection in the selection screen. I would like to count the number of rows of the selection before excedcuting this query in order to send an error message, so that the user needs to make a new selection with less rows due to the fact that we get short dumps. The problem I have, I cannot find a function module or something else to get the number of the selected rows.
    Can anyone help me to solve this????
    Best Regards
    Abdel

    Hi all,
    I have solved the problem. I have modeled a DSO with all data of all my Cubes and wrote a programm in the User-Exit for reporting variables that counts the selected rows before excecuting the query. A warning message is also programed, when the user choses too much rows.
    But thank you for triying to help me.
    Best Regards
    Abdel

  • Need help writing a MySQL query that will return only records with matching counter-parts

    Since I don't know how to explain this easily, I'm using the
    table below as an example.
    I want to create a MySQL query that will return only records
    that have matching counter-parts where 'col1' = 'ABC'.
    Notice the 'ABC / GHI' record does not have a
    counter-matching 'GHI / ABC' record. This record should not be
    returned because there is no matching counter-part. With this
    table, the 'ABC / GHI' record should be the only one returned in
    the query.
    How can I create a query that will do this?
    id | col1 | col2
    1 | ABC | DEF
    2 | DEF | ABC
    3 | ABC | GHI
    4 | DEF | GHI
    5 | GHI | DEF
    *Please let me know if you have no idea what I'm trying to
    explain.

    AngryCloud wrote:
    > Since I don't know how to explain this easily, I'm using
    the table below as an
    > example.
    >
    > I want to create a MySQL query that will return only
    records that have
    > matching counter-parts where 'col1' = 'ABC'.
    >
    > Notice the 'ABC / GHI' record does not have a
    counter-matching 'GHI / ABC'
    > record. This record should not be returned because there
    is no matching
    > counter-part. With this table, the 'ABC / GHI' record
    should be the only one
    > returned in the query.
    >
    > How can I create a query that will do this?
    >
    >
    > id | col1 | col2
    > --------------------
    > 1 | ABC | DEF
    > 2 | DEF | ABC
    > 3 | ABC | GHI
    > 4 | DEF | GHI
    > 5 | GHI | DEF
    >
    >
    > *Please let me know if you have no idea what I'm trying
    to explain.
    >
    Please be more clear. You say that 'ABC / GHI' should not be
    returned,
    and then you say that 'ABC / GHI' should be the only one
    returned. Can't
    have both...

  • Retrieving the row number of a specific record from the results of a MySQL query

    I want to create a MySQL query that will return a list of
    records, and then retrieve the row number of a record with a
    specific ID. How can I do this?
    *server-side script: PHP

    <?php
    $i = 0;
    do {
    $i++;
    } while (mysql_fetch_assoc($rsWhatever) &&
    $row_rsWhatever['ID'] !=57);
    echo "TADA -" . $i;
    ?>
    (assuming that ID is numeric, and that the test value
    actually exists in the
    database)
    Murray --- ICQ 71997575
    Adobe Community Expert
    (If you *MUST* email me, don't LAUGH when you do so!)
    ==================
    http://www.projectseven.com/go
    - DW FAQs, Tutorials & Resources
    http://www.dwfaq.com - DW FAQs,
    Tutorials & Resources
    ==================
    "AngryCloud" <[email protected]> wrote in
    message
    news:g4e6ck$hrb$[email protected]..
    >I will use this scenario for an example:
    >
    > I want to know how far down the list I will find the ID,
    '57'.
    >
    > So I manually look at the list of results and see it is
    the 25th record
    > down
    > on the list.
    >
    > How do I get my PHP script to get this number (25)
    automatically?
    >

  • MYSQL Query

    I have a question to a MYSQL query (using PHP) in a site I
    created for a
    client.
    I need to output the sum of one particular column in a table.
    I created
    an "exercise counter" for subscribers to this particular
    page, which is
    supposed to help them keeping track of how much exercise they
    get. So
    each day they add an amount, and it gets added up per week.
    What i need to output is the total amount of exercise of all
    users combined.
    So I just made a query, and go through however many rows
    there are in
    the result and add those up.
    But then I was thinking what if that table grows enourmously
    in size.
    (lets say there will be 100.000 subscribers and they each
    count each week).
    The calculating amount would be quite enormous.
    So then I thought, hey the heck with it, i throw in another
    table which
    just contains the total amount and each time a user adds on
    his count, i
    just do that too...
    Am I walking the long way or is my reasoning somewhat sound?
    Anurag

    Anuragbabaji wrote:
    > Steve wrote:
    >> On Thu, 07 Dec 2006 18:38:20 -0500, Anuragbabaji
    >> <[email protected]> wrote:
    >>
    >>> Am I walking the long way or is my reasoning
    somewhat sound?
    >>
    >> All you need is the SUM function:
    >>
    >>
    http://www.tizag.com/mysqlTutorial/mysqlsum.php
    >
    > looks great... BUT do you think that if the table has a
    zillion rows...
    > do you think the two table solution would be faster...
    >
    > I don't want to have to go back in five years ;)
    would it be sufficient and/or adviseable to simply "index"
    the column?
    anurag

  • Generate XML based on MySQL Query

    Hello guys,
    I need to create a XML file like this one(same structure) but based on MySQL query:
    <chart>
       <chart_type>pie</chart_type>
       <chart_data>
          <row>
             <null/>
             <string>2007</string>
             <string>2008</string>
             <string>2009</string>
          </row>
          <row>
             <string>Region A</string>
             <number>10</number>
             <number>30</number>
             <number>63</number>
          </row>
       </chart_data>
    </chart>
    I found a couple of good articles but I do not know how to get the same structure, I tried this:
    <?php
    header("Content-type: text/xml");
    $host = "localhost";
    $user = "test";
    $pass = "test";
    $database = "test";
    $enlace = mysql_connect($host, $user, $pass) or die("Error MySQL.");
    mysql_select_db($database, $enlace) or die("Error base de datos.");
    $query = "SELECT AGENTE, count(*) FROM clientes group by agente";
    $resultado = mysql_query($query, $enlace) or die("Sin resultados.");
    $salida_xml = "<?xml version=\"1.0\"?>\n";
    $salida_xml .= "<chart>\n";
    $salida_xml .= "<chart_type>" . 'pie' . "</chart_type>\n";
        $salida_xml .= "<chart_data>\n";
        for($x = 0 ; $x < mysql_num_rows($resultado) ; $x++){
            $fila = mysql_fetch_assoc($resultado);
            $salida_xml .= "\t<row>\n";
            $salida_xml .= "\t\t<agente>" . $fila['AGENTE'] . "</agente>\n";
            $salida_xml .= "\t\t<cantidad>" . $fila['count(*)'] . "</cantidad>\n";
                // Corregiendo caracteres incorrectos
                $fila['texto'] = str_replace("&", "&amp;", $fila['texto']);
                $fila['texto'] = str_replace("<", "&lt;", $fila['texto']);
                $fila['texto'] = str_replace(">", "&gt;", $fila['texto']);
               // $salida_xml .= "\t\t<texto>" . $fila['texto'] . "</texto>\n";
            $salida_xml .= "\t</row>\n";
        }//segundo for
        $salida_xml .= "</chart_data>\n";
    $salida_xml .= "</chart>";
    echo $salida_xml;
    but I'm not getting the same structure, I am getting this:
    <chart>
    <chart_type>pie</chart_type>

    <chart_data>
    <row>
        </row>

    <row>
    <agente>Danilo</agente>
    <cantidad>8</cantidad>
    </row>
    <row>
        </row>

    <row>
    <agente>Evelyn</agente>
    <cantidad>5</cantidad>
    </row>
    <row>
        </row>

    <row>
    <agente>Maribel</agente>
    <cantidad>2</cantidad>
    </row>
    <row>
        </row>

    <row>
    <agente>Nestor</agente>
    <cantidad>11</cantidad>
    </row>
    <row>
        </row>

    <row>
    <agente>Noemy</agente>
    <cantidad>2</cantidad>
    </row>
    </chart_data>
    </chart>
    Can someone give me a hand plase?
    Thanks in advance

    Doing some extra research I almost get to the result that I need, I guess I am jus
    t having an small problem.
    Basically I need this
    [PHP]
    <chart>
       <chart_type>pie</chart_type>
       <chart_data>
          <row>
             <null/>
             <string>2007</string>
             <string>2008</string>
             <string>2009</string>
          </row>
          <row>
             <string>Region A</string>
             <number>10</number>
             <number>30</number>
             <number>63</number>
          </row>
       </chart_data>
    </chart>
    [/PHP]
    Currently I have this:
    [PHP]
    <chart>
        <chart_type>pie</chart_type>
        <chart_data>
            <row>
                <null></null>
                <agente>Danilo</agente>
                <agente>Evelyn</agente>
                <agente>Maribel</agente>
                <agente>Nestor</agente>
                <agente>Noemy</agente>
            </row>
            <row>
                <rutas>rutas</rutas>
                <cantidad></cantidad>
                <cantidad></cantidad>
                <cantidad></cantidad>
                <cantidad></cantidad>
                <cantidad></cantidad>
            </row>
        </chart_data>
    </chart>
    [/PHP]
    And I am using this code
    [PHP]<?php
    header("Content-type: text/xml");
    $host = "xxx";
    $user = "xxxx";
    $pass = "xxxx";
    $database = "xxxx";
    $enlace = mysql_connect($host, $user, $pass) or die("Error MySQL.");
    mysql_select_db($database, $enlace) or die("Error base de datos.");
    $query = "SELECT AGENTE, count(*) FROM clientes WHERE PREVENTA LIKE 'Viernes' group by agente";
    $resultado = mysql_query($query, $enlace) or die("Sin resultados.");
    $salida_xml = "<?xml version=\"1.0\"?>\n";
    $salida_xml .= "<chart>\n";
    $salida_xml .= "\t<chart_type>" . 'pie' . "</chart_type>\n\n";
    $salida_xml .= "\t<chart_data>\n";
                $salida_xml .= "\t\t<row>\n";
                $salida_xml .= "\t\t\t<null>" . $fila5['NULL']. "</null>\n";
                for($y = 0 ; $y < mysql_num_rows($resultado) ; $y++){
                    $fila2 = mysql_fetch_assoc($resultado); 
                    $salida_xml .= "\t\t\t<agente>" . $fila2['AGENTE'] . "</agente>\n";
                    }//cierro for Y
                $salida_xml .= "\t\t</row>\n";
                $salida_xml .= "\t\t<row>\n";    
                $salida_xml .= "\t\t\t<rutas>" . 'rutas'. "</rutas>\n";
                for($z = 0 ; $z < mysql_num_rows($resultado) ; $z++){
                    $valor = mysql_fetch_assoc($resultado);
                    $salida_xml .= "\t\t\t<cantidad>" . $valor['count(*)'] . "</cantidad>\n";
                }//cierro for z
                $salida_xml .= "\t\t</row>\n";
        $salida_xml .= "\t</chart_data>\n";
    $salida_xml .= "</chart>";
    echo $salida_xml;
    ?>[/PHP]
    The issue I am having is that it is not showing the quantity, in this case "cantidad", does someone know why?

  • Getting number of results from mysql query.

    Hi,
    Is there an easy way to get the number of rows (results) returned by a mysql query without looping through each result and incrementing using the rs.next()?
    Statement statement = connection.createStatement();
                   ResultSet rs = statement.executeQuery("SELECT * FROM sometable WHERE name=\"John\"");
                   

    Have you looked at the mysql documentation at all ?
    What about "SELECT count(*) FROM sometable WHERE name=\"John\"");
    And if this value is going to be dynamic at all consider using a preparedStatement.
    Note Haven't worked with MySql so this isn't guarenteed to work, but you get the idea. This is more of a sql question than a java question

  • Please help -- MySQL Query to Oracle

    I have been trying to convert the following MySQL query to work with Oracle 9i. There seem to be two problems:
    1) Oracle doesn't like the inclusion of the tblpackagegeneral.packageid in the "ON" clause of the "JOIN".
    2) The "GROUP BY" only has the one field, "tblpackagegeneral.packageid", specified; Oracle wants the other two specified as well. When I do that I get a different data set than what MySQL returns for the same tables of data: specifically MySQL returns one row for each packageid but the revised Oracle version returns more than 1 sometimes.
    I would appreciate any assistance possible.
    /* Formatted on 2003/07/07 14:43 (Formatter Plus v4.8.0) */
    SELECT tblpackagegeneral.packageid,
    CASE
    WHEN NVL
    (COUNT (tblpackagelearnerassignment.learnerid),
    COUNT (tbllearnergeneral.learnerid)
    ) > 0
    THEN 'Activity'
    WHEN tbllearnergeneral.subscribetopubliccourse = 'true'
    AND tblpackagegeneral.packageaccess = 'Public'
    THEN 'ActivityAfterSubscribe'
    WHEN ( tbllearnergeneral.subscribetopubliccourse = 'false'
    AND tblpackagegeneral.packageaccess = 'Public'
    THEN 'Subscribe'
    ELSE 'Subscribe'
    END AS "ASSIGNSTATUS"
    FROM tblpackagegeneral, tbllearnergeneral LEFT OUTER JOIN tblpackagelearnerassignment ON ( tblpackagelearnerassignment.packageid =
    tblpackagegeneral.packageid
    AND tblpackagelearnerassignment.learnerid =
    tbllearnergeneral.learnerid
    WHERE tbllearnergeneral.learnerid = '%var'
    AND tblpackagegeneral.packageavailability = 'Available'
    AND TO_CHAR (tblpackagegeneral.dateto, 'YYYYMMDD') >=
    TO_CHAR (CURRENT_TIMESTAMP, 'YYYYMMDD')
    GROUP BY tblpackagegeneral.packageid;
    Sincerely,
    Bill Robinson

    I have been trying to convert the following MySQL query to work with Oracle 9i. There seem to be two problems:
    1) Oracle doesn't like the inclusion of the tblpackagegeneral.packageid in the "ON" clause of the "JOIN".
    2) The "GROUP BY" only has the one field, "tblpackagegeneral.packageid", specified; Oracle wants the other two specified as well. When I do that I get a different data set than what MySQL returns for the same tables of data: specifically MySQL returns one row for each packageid but the revised Oracle version returns more than 1 sometimes.
    I would appreciate any assistance possible.
    /* Formatted on 2003/07/07 14:43 (Formatter Plus v4.8.0) */
    SELECT tblpackagegeneral.packageid,
    CASE
    WHEN NVL
    (COUNT (tblpackagelearnerassignment.learnerid),
    COUNT (tbllearnergeneral.learnerid)
    ) > 0
    THEN 'Activity'
    WHEN tbllearnergeneral.subscribetopubliccourse = 'true'
    AND tblpackagegeneral.packageaccess = 'Public'
    THEN 'ActivityAfterSubscribe'
    WHEN ( tbllearnergeneral.subscribetopubliccourse = 'false'
    AND tblpackagegeneral.packageaccess = 'Public'
    THEN 'Subscribe'
    ELSE 'Subscribe'
    END AS "ASSIGNSTATUS"
    FROM tblpackagegeneral, tbllearnergeneral LEFT OUTER JOIN tblpackagelearnerassignment ON ( tblpackagelearnerassignment.packageid =
    tblpackagegeneral.packageid
    AND tblpackagelearnerassignment.learnerid =
    tbllearnergeneral.learnerid
    WHERE tbllearnergeneral.learnerid = '%var'
    AND tblpackagegeneral.packageavailability = 'Available'
    AND TO_CHAR (tblpackagegeneral.dateto, 'YYYYMMDD') >=
    TO_CHAR (CURRENT_TIMESTAMP, 'YYYYMMDD')
    GROUP BY tblpackagegeneral.packageid;
    Sincerely,
    Bill Robinson

  • Weird problem with mysql query and data table buttons !!!!

    Hi,
    I'm using jsc 2 update 1 on windows and mysql 4.1 . I have a page with a data table. One column of the data table contains "Details" buttons.
    Source query for the table is :
    SELECT tbl_tesserati.idtbl_tesserati idTesserato,
    tbl_tesserati.num_tessera,
    tbl_tesserati.nome,
    tbl_societa.codice_meccanografico
    FROM tbl_tesserati
    INNER JOIN tbl_rel_tesserato_discipline_societa ON tbl_tesserati.idtbl_tesserati = tbl_rel_tesserato_discipline_societa.id_tesserato
    INNER JOIN tbl_cariche ON      tbl_rel_tesserato_discipline_societa.id_carica = tbl_cariche.idtbl_cariche
    INNER JOIN tbl_qualifiche ON      tbl_rel_tesserato_discipline_societa.id_qualifica = tbl_qualifiche.idtbl_qualifiche
    INNER JOIN tbl_discipline ON      tbl_rel_tesserato_discipline_societa.id_disciplina = tbl_discipline.idtbl_discipline
    INNER JOIN tbl_societa ON      tbl_rel_tesserato_discipline_societa.id_societa = tbl_societa.idtbl_societa
    LEFT JOIN tbl_province ON tbl_societa.provincia_sede_sociale = tbl_province.idtbl_province
    LEFT JOIN tbl_comuni ON tbl_societa.comune_sede_sociale = tbl_comuni.idtbl_comuni
    LEFT JOIN tbl_rel_tesserato_discipline_praticate ON tbl_rel_tesserato_discipline_praticate.tessera_id=
    tbl_rel_tesserato_discipline_societa.idtbl_rel_tesserato_discipline
    LEFT JOIN tbl_discipline_praticate ON tbl_discipline_praticate.idtbl_disciplina_praticate=tbl_rel_tesserato_discipline_praticate.disciplina_praticata_id
    WHERE
    tbl_tesserati.cognome LIKE ?
    AND tbl_tesserati.nome LIKE ?
    AND tbl_rel_tesserato_discipline_societa.id_societa LIKE ?
    AND tbl_tesserati.idtbl_tesserati LIKE ?
    AND tbl_cariche.idtbl_cariche LIKE ?
    AND tbl_qualifiche.idtbl_qualifiche LIKE ?
    AND tbl_tesserati.data_nascita >= ?
    AND tbl_tesserati.data_nascita<= ?
    AND tbl_discipline.idtbl_discipline LIKE ?
    AND codice_affiliazione LIKE ?
    AND tbl_societa.denominazione LIKE ?
    AND YEAR(tbl_rel_tesserato_discipline_societa.data_scadenza) LIKE ?
    AND (tbl_province.nome LIKE ? OR tbl_province.nome IS NULL)
    AND ( tbl_comuni.nome LIKE ? OR tbl_comuni.nome IS NULL)
    The tbl_tesserati.data_nascita is a mysql date field.
    The click event handler code for the "Details" Button is:
    public String btnModificaTesserato_action() {
            try{
                TableRowDataProvider rowData= (TableRowDataProvider)getBean("currentRowTesserati");
                getRequestBean1().setId_tesserato((Long)rowData.getValue("idTesserato"));          
            } catch(Exception ex) {
                log("errore nella query",ex);
            return "dettaglioTesseratoSocieta";
        }When i run the project and open the page the table is correctly rendered and populated with some rows. But when i click on details button nothing happens, the page is simply reloaded.
    If i set a breakpoint in the code line   TableRowDataProvider rowData= (TableRowDataProvider)getBean("currentRowTesserati");the debbuger does not stop the code execution ! As if the button was never clicked!
    I tried to modify the source query to :
    SELECT tbl_tesserati.idtbl_tesserati idTesserato,
    tbl_tesserati.num_tessera,
    tbl_tesserati.nome,
    tbl_societa.codice_meccanografico
    FROM tbl_tesserati
    INNER JOIN tbl_rel_tesserato_discipline_societa ON tbl_tesserati.idtbl_tesserati = tbl_rel_tesserato_discipline_societa.id_tesserato
    INNER JOIN tbl_cariche ON      tbl_rel_tesserato_discipline_societa.id_carica = tbl_cariche.idtbl_cariche
    INNER JOIN tbl_qualifiche ON      tbl_rel_tesserato_discipline_societa.id_qualifica = tbl_qualifiche.idtbl_qualifiche
    INNER JOIN tbl_discipline ON      tbl_rel_tesserato_discipline_societa.id_disciplina = tbl_discipline.idtbl_discipline
    INNER JOIN tbl_societa ON      tbl_rel_tesserato_discipline_societa.id_societa = tbl_societa.idtbl_societa
    LEFT JOIN tbl_province ON tbl_societa.provincia_sede_sociale = tbl_province.idtbl_province
    LEFT JOIN tbl_comuni ON tbl_societa.comune_sede_sociale = tbl_comuni.idtbl_comuni
    LEFT JOIN tbl_rel_tesserato_discipline_praticate ON tbl_rel_tesserato_discipline_praticate.tessera_id=
    tbl_rel_tesserato_discipline_societa.idtbl_rel_tesserato_discipline
    LEFT JOIN tbl_discipline_praticate ON tbl_discipline_praticate.idtbl_disciplina_praticate=tbl_rel_tesserato_discipline_praticate.disciplina_praticata_id
    WHERE
    tbl_tesserati.cognome LIKE ?
    AND tbl_tesserati.nome LIKE ?
    AND tbl_rel_tesserato_discipline_societa.id_societa LIKE ?
    AND tbl_tesserati.idtbl_tesserati LIKE ?
    AND tbl_cariche.idtbl_cariche LIKE ?
    AND tbl_qualifiche.idtbl_qualifiche LIKE ?
    AND tbl_tesserati.data_nascita >= ?
    OR tbl_tesserati.data_nascita<= ?
    AND tbl_discipline.idtbl_discipline LIKE ?
    AND codice_affiliazione LIKE ?
    AND tbl_societa.denominazione LIKE ?
    AND YEAR(tbl_rel_tesserato_discipline_societa.data_scadenza) LIKE ?
    AND (tbl_province.nome LIKE ? OR tbl_province.nome IS NULL)
    AND ( tbl_comuni.nome LIKE ? OR tbl_comuni.nome IS NULL)
    Using this query everything works well !! The click handler works and the debugger too !!
    I changed only the AND in OR !!!
    I also tried to change mysql-x-x-connector driver but without solving my problem.
    Can someone help me ?
    Thanks
    Giorgio

    You'll find that it is more to do with the way MySql deals with dates than anything else! Depending on how your date field is setup, then try using a BETWEEN statement for those 2 lines in your first query e.g.
    AND ( tbl_tesserati.data_nascita BETWEEN ? AND ?)
    The date column needs to be in the ISO format to work. If you examine your second query output, you might discover that the output is only going to refer to one parameter (probably the OR one). Did you manage to view the output logs from the application server? You would have got an idea from there with a message like stating a conversion error'.
    Alternatively, you could try using the to_days() function and convert it directly to a number which would be a lot easier to deal with. For example:
    AND to_days(tbl_tesserati.data_nascita >= ? )
    AND to_days( tbl_tesserati.data_nascita<= ? )
    Or try the BETWEEN version with to_days() and see what you get.
    More info about date formatting (v5) here:
    http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_to-days
    Before I forget, sometimes you may need to treat dates as Strings rather 'Long' as you did.
    As a matter of interest, did you try your query in a different piece of software?
    If my queries are a little more complicated, I tend to try MySql queries out in the free MySql query browser and also double check in another to verify certain issues. I found it easier to develop SQL in a seperate program then import the final version to JSC making the required modifications for parameters.
    Message was edited by:
    aerostra

  • How to get number of rows return in SELECT query

    i'm very new in java, i have a question:
    - How to get number of rows return in SELECT query?
    (i use SQL Server 2000 Driver for JDBC and everything are done, i only want to know problems above)
    Thanks.

    make the result set scroll insensitve, do rs.last(), get the row num, and call rs.beforeFirst(), then you can process the result set like you currently do.
             String sql = "select * from testing";
             PreparedStatement ps =
              con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
             ResultSet rs = ps.executeQuery();
             rs.last();
             System.out.println("Row count = " + rs.getRow());
             rs.beforeFirst();~Tim
    NOTE: Ugly, but does the trick.

  • Help with mysql query plz anyone i am begging!!!

    Hi everyone pls forgive me i am new to java. can someone pls tel me where i am going wrong wit this mysql query?
    <sql:query var="parish" maxRows="1" dataSource="jdbc/gav">
    SELECT ParishName, OwnerOccupierHousehold, OwnerOccupierPercOfOverall, OwnerOccupierCo2Emissions,
    SocialRentedHousehold, SocialRentedPercOfOverall, SocialRentedCo2Emissions, PrivateRentedHousehold,
    PrivateRentedPercOfOverall, PrivateRentedCo2Emission, TotalHouseholds, TotalPerc, Average,
    Total2001, TotalEstimatedTotal2006, EmissionsPerPerson, EmissionPerHousehold, EmissionsPerParish,
    EnergyChampionsNeeded, NumberOfPeopleAtWork, NumberOfSchoolAgeChildren
    FROM base_data as b
    WHERE b.id = ? <sql:param value="${param.id}"/>
    <sql:param value="${param.id}"/>
    </sql:query>
    <c:set var="parish" scope="request" value="${parish.rows[0]}"/>
    here is the error i get:
    java.sql.SQLException: Parameter index out of range (2 > number of parameters, which is 1).
    please any help would be appreciated!!! Thanks in advance guys .

    here is my code for the form on the index page:
    <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    <%@taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>
    <sql:query var="parish" dataSource="jdbc/gav">
    SELECT id, ParishName FROM base_data
    </sql:query>
    <form action="response.jsp">
    Select a Parish: <select name="id">
    <c:forEach var="parish" items="${parish.rows}">
    <option value="${parish.id}">${parish.ParishName}</option>
    </c:forEach>
    </select><br><input type="submit" value="submit" name="submit" /></form>
    here is the code for the response page:
    <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    <%@taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>
    <sql:query var="parish" maxRows="1" dataSource="jdbc/gav">
    SELECT b.id, b.ParishName, b.OwnerOccupierHousehold, b.OwnerOccupierPercOfOverall, b.OwnerOccupierCo2Emissions,
    b.SocialRentedHousehold, b.SocialRentedPercOfOverall, b.SocialRentedCo2Emissions, b.PrivateRentedHousehold,
    b.PrivateRentedPercOfOverall, b.PrivateRentedCo2Emission, b.TotalHouseholds, b.TotalPerc, b.Average,
    b.Total2001, b.TotalEstimatedTotal2006, b.EmissionsPerPerson, b.EmissionPerHousehold, b.EmissionsPerParish,
    b.EnergyChampionsNeeded, b.NumberOfPeopleAtWork, b.NumberOfSchoolAgeChildren
    FROM base_data as b
    WHERE b.id = ? <sql:param value="${param.id}"/>
    </sql:query>
    <c:set var="parish" scope="request" value="${parish.rows[0]}"/>
    i display the results like this : ${parish.EmissionsPerParish}
    the user should be able to select a parish from a form and then sql query created and then i want to show the row results on the response page.
    could you tell me where so should be a simple process although not simple enough as it may seem.
    thanks for the advice keith

  • Mysql Query VS Vector Object

    I run mysql query using Java, and the results of it are put in a vector object. Due to the vector object is made by 1 element (it's sure because I wrote the database) I'd like to take it and put it in a string variable, but Java returns me a lot of exceptions; here is the code:
    public Vector eseguiQuery(String query) {
         Vector v = null;
         String [] record;
         int colonne = 0;
         try {
            Statement stmt = db.createStatement();     // Creo lo Statement per l'esecuzione della query
            ResultSet rs = stmt.executeQuery(query);   // Ottengo il ResultSet dell'esecuzione della query
            v = new Vector();
            ResultSetMetaData rsmd = rs.getMetaData();
            colonne = rsmd.getColumnCount();
            while(rs.next()) {   // Creo il vettore risultato scorrendo tutto il ResultSet
               record = new String[colonne];
               for (int i=0; i<colonne; i++) record[i] = rs.getString(i+1);
               v.add( (String[]) record.clone() );
            rs.close();     // Chiudo il ResultSet
            stmt.close();   // Chiudo lo Statement
         } catch (Exception e) { e.printStackTrace(); errore = e.getMessage(); }
         return v;
    public String autentica(String query){
              String s = (String) db.eseguiQuery(query).get(0);
              System.out.println(s);
              return s;
         }...Please help me!

    1. You're not calling ResultSet.next() to move the result set onto the first row of results.
    2. (Edit) Deleted because you were in fact closing your objects, though you should still use a finally block to make absolutely certain.
    3. The exceptions tell you what the problem is - when you post a question please include these.
    Edited by: dcminter on 06-Aug-2008 17:04

  • Number of rows returned in a query

    Is there a way to get the number of rows returned from a query without itterating through the itterator?
    Thanks,
    Yon

    No.
    Because rows are not all returned until you start interating.
    Some times I have seen people do a count query before the normal query, this helps out if you need a count to set things up.

Maybe you are looking for

  • Install Windows 8.1 on MacBook Pro 13" late 2013

    Hi I'm trying to install windows on my mac since 2 days. The version of OS X i'm running is yosemite. The version of windows  i bought from the microsoft store is an iso version of windows 8.1 Professional. This is my procedure to install windows: 1)

  • LE_SHP_DELIVERY_PROC in CNS0 not implemented

    Dear All, I am creating a delivery from project system using t-code CNS0, I am getting the following Error Message: Error during copy of partner: Partner role SP Message no. VL864 I found BADI LE_SHP_DELIVERY_PROC defined in CNS0(SAPLCNSH), but not i

  • Wrong behaviour in link generated by HTML editor

    Hi all, anybody knows if there is some bug in HTML editor used in XML Form Builder projects? We are facing the following problem: 1) we create a link by filling the html editor area in a news XML edit form 2) save and publish the news 3) in rendering

  • Output File : German Characters are not coming

    Hi All, In my output file german characters are not showing. All the german Symbols are coming as '?'. Is there any way to get that? Regards, Sridhar

  • Airplay mirroring visual not working

    My Macbook Pro can support Airplay Mirroring...it was just working last night, however now when I connect my macbook the visuals have stopped but I can hear sound. My TV shows a black screen. Any idea what is going on?