<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Помогите с запросом</title>
    <link>https://slinkov.ru/openforum/vsluhforumID9/8126.html</link>
    <description>Здравствуйте!&lt;br&gt;Пишу скрипт для работы с базой данных, озадачен вопросом, как можно в констукции&lt;br&gt;...&lt;br&gt;WHERE CAST(field1 AS CHAR) LIKE CONCAT(CAST(field2 AS CHAR), &apos;&#037;&apos;)&lt;br&gt;...&lt;br&gt;&lt;br&gt;реализовать выборку по наибольшему совпадению начальных символов поля field1 из множества строк, получающихся из конструкции CONCAT(CAST(field2 AS CHAR), &apos;&#037;&apos;)&lt;br&gt;&lt;br&gt;пример, для понимания:&lt;br&gt;есть 3 направления&lt;br&gt;&lt;br&gt;1 страна1&lt;br&gt;12 страна2&lt;br&gt;123 страна3&lt;br&gt;&lt;br&gt;при звонке на номер 123ххххххх тарификация должна осуществляться по стране3&lt;br&gt;&lt;br&gt;Помогите реализовать такую штуку )&lt;br&gt;</description>

<item>
    <title>Помогите с запросом (Jaivan)</title>
    <link>https://slinkov.ru/openforum/vsluhforumID9/8126.html#4</link>
    <pubDate>Wed, 11 Mar 2009 11:46:49 GMT</pubDate>
    <description>&amp;gt;вся фишка тут в order by prefix desc limit 1 &lt;br&gt;&lt;br&gt;мне эта фишка совсем не нужна как бы )))&lt;br&gt;вот, что надо:&lt;br&gt;SELECT           c.dt,&lt;br&gt; c.klient,&lt;br&gt; c.tel1,&lt;br&gt; b.country, &lt;br&gt; b.countryid, &lt;br&gt; b.costout, &lt;br&gt; ROUND(c.dur, 0)  AS dur, &lt;br&gt; ROUND((c.dur/60*b.costout), 5) AS Summa&lt;br&gt;  FROM &lt;br&gt;   bil b&lt;br&gt;   INNER JOIN cdr c ON c.tel1 LIKE CONCAT(b.countryid, &apos;&#037;&apos;)&lt;br&gt;   LEFT JOIN bil bi ON&lt;br&gt;   bi.countryid != b.countryid&lt;br&gt;   AND LENGTH(bi.countryid) &amp;gt; LENGTH(b.countryid)&lt;br&gt;   AND c.tel1 LIKE CONCAT(bi.countryid, &apos;&#037;&apos;)&lt;br&gt;  WHERE bi.countryid IS NULL&lt;br&gt;  ORDER BY c.dt &lt;br&gt;&lt;br&gt;только еще сделать итоги по ROUND(c.dur, 0)  AS dur и ROUND((c.dur/60*b.costout), 5) AS Summa&lt;br&gt;не подскажете как?&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Помогите с запросом (other)</title>
    <link>https://slinkov.ru/openforum/vsluhforumID9/8126.html#3</link>
    <pubDate>Fri, 06 Mar 2009 07:20:37 GMT</pubDate>
    <description>вся фишка тут в order by prefix desc limit 1&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Помогите с запросом (Jaivan)</title>
    <link>https://slinkov.ru/openforum/vsluhforumID9/8126.html#2</link>
    <pubDate>Fri, 06 Mar 2009 07:10:23 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt;1 row in set (0.00 sec) &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;mysql&amp;gt; select * from test where left(&apos;123488977324324212&apos;, length(prefix)) = prefix order by prefix desc limit 1;&lt;br&gt;&amp;gt;+----+--------+ &lt;br&gt;&amp;gt;&amp;#124; id &amp;#124; prefix &amp;#124; &lt;br&gt;&amp;gt;+----+--------+ &lt;br&gt;&amp;gt;&amp;#124;  4 &amp;#124; 1234   &amp;#124; &lt;br&gt;&amp;gt;+----+--------+ &lt;br&gt;&amp;gt;1 row in set (0.00 sec) &lt;br&gt;&amp;gt;&#091;/code&#093; &lt;br&gt;&lt;br&gt;выборка идентичная получается что так:&lt;br&gt;WHERE CAST(field1 AS CHAR) LIKE CONCAT(CAST(field2 AS CHAR), &apos;&#037;&apos;)&lt;br&gt;что так:&lt;br&gt;WHERE LEFT(tel1, length(countryid)) = countryid&lt;br&gt;вторая конечно проще для восприятия, но не делает то, что надо&lt;br&gt;</description>
</item>

<item>
    <title>Помогите с запросом (other)</title>
    <link>https://slinkov.ru/openforum/vsluhforumID9/8126.html#1</link>
    <pubDate>Thu, 05 Mar 2009 20:21:22 GMT</pubDate>
    <description>&#091;code&#093;&lt;br&gt;mysql&amp;gt; select * from test;&lt;br&gt;+----+--------+&lt;br&gt;&amp;#124; id &amp;#124; prefix &amp;#124;&lt;br&gt;+----+--------+&lt;br&gt;&amp;#124;  1 &amp;#124; 1      &amp;#124; &lt;br&gt;&amp;#124;  2 &amp;#124; 12     &amp;#124; &lt;br&gt;&amp;#124;  3 &amp;#124; 123    &amp;#124; &lt;br&gt;&amp;#124;  4 &amp;#124; 1234   &amp;#124; &lt;br&gt;&amp;#124;  5 &amp;#124; 12345  &amp;#124; &lt;br&gt;+----+--------+&lt;br&gt;5 rows in set (0.00 sec)&lt;br&gt;&lt;br&gt;mysql&amp;gt; select * from test where left(&apos;1288977324324212&apos;, length(prefix)) = prefix order by prefix desc limit 1;&lt;br&gt;+----+--------+&lt;br&gt;&amp;#124; id &amp;#124; prefix &amp;#124;&lt;br&gt;+----+--------+&lt;br&gt;&amp;#124;  2 &amp;#124; 12     &amp;#124; &lt;br&gt;+----+--------+&lt;br&gt;1 row in set (0.00 sec)&lt;br&gt;&lt;br&gt;mysql&amp;gt; select * from test where left(&apos;12388977324324212&apos;, length(prefix)) = prefix order by prefix desc limit 1;&lt;br&gt;+----+--------+&lt;br&gt;&amp;#124; id &amp;#124; prefix &amp;#124;&lt;br&gt;+----+--------+&lt;br&gt;&amp;#124;  3 &amp;#124; 123    &amp;#124; &lt;br&gt;+----+--------+&lt;br&gt;1 row in set (0.00 sec)&lt;br&gt;&lt;br&gt;mysql&amp;gt; select * from test where left(&apos;123488977324324212&apos;, length(prefix)) = prefix order by prefix desc limit 1;&lt;br&gt;+----+--------+&lt;br&gt;&amp;#124; id &amp;#124; prefix &amp;#124;&lt;br&gt;+----+--------+&lt;br&gt;&amp;#124;  4 &amp;#124; 1</description>
</item>

</channel>
</rss>
